ConnectionString属性尚未初始化。 Visual Basic 2015

时间:2018-07-12 10:20:50

标签: vb.net

我不断收到此错误,这是在我创建新表单时开始的 我正在使用Visual Basic 2015

Public Class Form2
    Private MARKSDataAdapter As New SqlDataAdapter
    Private MARKSCmdBuilder As New SqlCommandBuilder
    Private MARKSDataTable As New DataTable
    Private MARKSConnection As New SqlConnection
    Private MyRowPosition As Integer = 0

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    MARKSConnection.ConnectionString = "Data Source=(LocalDB)\MSSQLLocalDB; AttachDbFilename=c:\users\jonn\documents\visual studio 2015\Projects\SMART\SMART\SMART.mdf; Integrated Security=True"
    MARKSConnection.Open()

End Sub

Private Sub comMkSubj_TextChanged(sender As Object, e As EventArgs) Handles comMkSubj.TextChanged

    MARKSDataAdapter = New SqlDataAdapter("Select * from Students", MARKSConnection)
    MARKSCmdBuilder = New SqlCommandBuilder(MARKSDataAdapter)
    MARKSDataAdapter.Fill(MARKSDataTable)

    Dim i, n As Integer
    n = MARKSDataTable.Rows.Count
    Dim y As Integer = 5

    For i = 1 To n Step 1
        Dim NewLabel As New Label
        Dim NewTxt As New TextBox

        NewLabel.Name = "Label" & i
        NewLabel.AutoSize = True
        NewLabel.Text = MARKSDataTable.Rows(MyRowPosition)("Name")
        NewLabel.Location = New Point(0, y)

        NewTxt.Name = "Txt" & i
        NewTxt.Size = New Size(50, 20)
        NewTxt.Location = New Point(170, y - 3)
        NewTxt.TextAlign = HorizontalAlignment.Center

        mkPanel.Controls.Add(NewTxt)
        mkPanel.Controls.Add(NewLabel)

        MyRowPosition += 1
        y += 35
    Next

    LabelHeading.Text = comMkClass.Text + " " + comMkTerm.Text + ",  " + txtMkYear.Text + ": " + comMkSubj.Text
End Sub
End Class

在表格1中,相同语法的连接工作正常 但是当我移至表格2时,它不会加载 它在MARKSDataAdapter.Fill(MARKSDataTable)

处给了我这个错误
  

System.Data.dll中发生类型'System.InvalidOperationException'的异常,但未在用户代码中处理

     

其他信息:ConnectionString属性尚未初始化。

1 个答案:

答案 0 :(得分:1)

我建议进行以下更改

只需在变量的范围内声明变量,而不是在表单的范围内创建新实例

所以而不是:

Private MARKSConnection As New SqlConnection

只要做

Private MARKSConnection As SqlConnection

然后在实例化数据适配器之前,让我们尝试

MARKSConnection = New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB; AttachDbFilename=c:\users\jonn\documents\visual studio 2015\Projects\SMART\SMART\SMART.mdf; Integrated Security=True")

然后在表单加载中注释掉这两行。 DataAdapter处理打开和关闭连接,因此在这种情况下不需要MARKSConnection.Open()