Vb.net 未声明Dataadapter2

Vb.net 未声明Dataadapter2,vb.net,datagridview,Vb.net,Datagridview,我正在使用下面的代码创建datagridview Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click “此处输入文件的其他代码 然后使用下面的代码构建一个数据表 Dim sql2 As String = "SELECT i.[ID],i.[Site],i.[CLI],i.[CustomerName],i.[FromDate],i.[ToDate],i.[Quantity],i.[Uni

我正在使用下面的代码创建datagridview

Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
此处输入文件的其他代码

然后使用下面的代码构建一个数据表

Dim sql2 As String = "SELECT i.[ID],i.[Site],i.[CLI],i.[CustomerName],i.[FromDate],i.[ToDate],i.[Quantity],i.[UnitCost],i.[TotalCost],i.[Description],i.[filenameonly],i.billingmonth as [CurrentBillingMonth], i.[bill] From [DaisyServices].[dbo].[DaisyServicesIndigo] i LEFT JOIN [DaisyServices].[dbo].[" + TextBox1.Text + "] s on i.[SITE]=s.[SITE] AND i.[CLI]=s.[CLI] AND i.[Quantity]=s.[Quantity] AND i.[UnitCost]=s.[UnitCost] AND i.[TotalCost]=s.[TotalCost] AND i.[Description]=s.[Description] WHERE s.[CLI] is NULL"
Dim comm2 As SqlCommand = New SqlCommand(sql2, conn)
Dim dataadapter2 As SqlDataAdapter = New SqlDataAdapter(comm2)


'Fill Table
dataadapter2.Fill(ds, "Missing")
DataGridView3.AutoGenerateColumns = False
DataGridView3.DataSource = ds.Tables("Missing")
例如,我想在表单上创建一个按钮以保存回数据库

Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click

    'Save updated Customer DataGridView
    Dim sqlCmdBuilder As New SqlCommandBuilder(dataadapter2)
    sqlCmdBuilder.GetUpdateCommand()
    dataadapter2.Update(ds.Tables("Missing"))

End Sub
问题是Button4出现了一个错误,说明dataadapter2没有声明

如何构造代码以便Button4>

我尝试将DIM添加到顶级类,但在打开表单时,由于“对象引用未设置为对象的实例”,这导致了其他问题

非常感谢您的帮助


感谢

公开声明dataadapter2,以便您可以从其他函数访问它

如果需要在多个子系统中使用它,则问题可能是
comm2
对象尚未初始化yetconn已在类级别初始化,问题是当我在类级别定义SqlDataAdapter和SqlCommand时。我得到“对象引用未设置为对象的实例”。错误您需要更好的方法,如
DAL
层。您的表单将调用
DAL
上的方法来检索信息。
DAL
将初始化和查询数据并将其发回
DAL
=
数据访问层
。如果我在顶级公共类中定义了所有DataAdapter,那么它在任何地方都可用。未将“”对象引用设置为对象的实例时出错。“当我打开表单时,您的对象引用错误可能来自其他部分,而不是dataadapter2。请检查我的问题是,我需要DataAdapter全局可用。如果我将其设置为私有,它确实可以工作,但是我无法创建一个保存按钮来使用dataadapter,因为它不可用创建一个模块并在其中声明dataadapter变量…在您的工作表单中初始化它。因此,您可能会在任何地方使用它