Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Windows窗体应用程序:System.NullReferenceException错误_Vb.net - Fatal编程技术网

Vb.net Windows窗体应用程序:System.NullReferenceException错误

Vb.net Windows窗体应用程序:System.NullReferenceException错误,vb.net,Vb.net,你好 我一直在试图找出我的应用程序中的错误源。此函数(GetConcentrations())用于在DataGridView上显示数据库中的数据。该函数在PageLoad中调用,但工作正常,但当我在另一个子系统中调用它时,会出现此错误 有人能帮我吗?我已经试过不同的方法了 谢谢 代码如下: Private Sub GetConcentrations() Dim conString As String = ConfigurationManager.ConnectionStrings("d

你好

我一直在试图找出我的应用程序中的错误源。此函数(
GetConcentrations()
)用于在DataGridView上显示数据库中的数据。该函数在PageLoad中调用,但工作正常,但当我在另一个子系统中调用它时,会出现此错误

有人能帮我吗?我已经试过不同的方法了

谢谢

代码如下:

Private Sub GetConcentrations()
    Dim conString As String = ConfigurationManager.ConnectionStrings("dbAsthmaConnectionString").ConnectionString
    Me.dataAdapter = New SqlDataAdapter("Select * from tblConcentrations", conString)
    'Dim adapter As New SqlDataAdapter("Select * from tblConcentrations", conString)
    Dim dataset As New Data.DataSet

    Try
        Dim commandBuilder As New SqlCommandBuilder(Me.dataAdapter)

        Dim table As New DataTable()
        table.Locale = System.Globalization.CultureInfo.InvariantCulture
        Me.dataAdapter.Fill(table)
        'Dim datasetgetconcentrations = New DataSet
        Me.dataAdapter.Fill(dataset)
        Me.bindingSource1.DataSource = table

        DataGridView3.AutoResizeColumns(DataGridViewAutoSizeColumnMode.AllCellsExceptHeader)

        DataGridView3.DataSource = dataset.Tables(0)

        dataset.Dispose()

    Catch ex As Exception
        MsgBox("Failed to display the concentration table (GetConcentrations)!", MsgBoxStyle.Information)
    End Try

    'Dim ConcentrationValue As Double = DataGridView2.Rows.Contains
    'TextBoxCurrentConcentration.Text = txtMessage.Text
End Sub

我不明白你为什么两次调用Fill方法。
一次填充数据表,一次填充数据集。实际上只需要数据集的一个。 如果这能改变你的问题,你能试试吗

    Dim ds as New DataSet
    ds.Locale = System.Globalization.CultureInfo.InvariantCulture 
    Me.dataAdapter.Fill(ds) 
    DataGridView3.AutoResizeColumns(DataGridViewAutoSizeColumnMode.AllCellsExceptHeader) 
    DataGridView3.DataSource = ds.Tables(0) 
另外,不要在退出时处理数据集,您仍在使用它。

在这种情况下,最好让垃圾收集处理此任务

请张贴代码,而不是图片。另外,显示哪一行获得异常。如果可能的话,还请显示来自异常的完整调用堆栈。
dataset.Dispose()
没有多大意义,因为您似乎正在使用它绑定控件。顺便说一句,发布整个屏幕截图很难阅读。嗨,我发布了代码。它突出显示Me.dataAdapter.Fill(数据集)