Vb.net 在WinForms中显示数据表

Vb.net 在WinForms中显示数据表,vb.net,winforms,Vb.net,Winforms,我正在创建一个显示数据表的Windows窗体。我还希望能够从显示的表中选择一行,并将信息显示在调用它的表单上。我已连接到服务器,但似乎无法填充数据表 Dim Students As String = "select * from dbo.[students]" Dim Studentscmd As New SqlCommand(Students, cnn) Dim Studentstable As New DataTable Dim Studentadapter As New SqlDataAd

我正在创建一个显示数据表的Windows窗体。我还希望能够从显示的表中选择一行,并将信息显示在调用它的表单上。我已连接到服务器,但似乎无法填充数据表

Dim Students As String = "select * from dbo.[students]"
Dim Studentscmd As New SqlCommand(Students, cnn)
Dim Studentstable As New DataTable
Dim Studentadapter As New SqlDataAdapter

Dim NStudents As DataSet = New DataSet()
Studentadapter.Fill(NStudents)

Datagridview.DataGridView1.DataSource = NStudents
Datagridview.DataGridView1.Show()
试试这个:
(正如@DarrenMB提到的,
SqlAdapter
SqlCommand
之间缺少链接)

“更好的做法”是在处理非托管资源(如数据库)时使用
结束使用时
使用
创建的所有对象和资源都将被正确处置/释放

您的DataAdapter与我可以看到的命令或连接之间没有链接。基本上,您可以定义一个新适配器并向其传递一个空数据集。查看MSDN中的示例,了解如何执行此操作。在FILL命令之前缺少的
StudentAdapter.SelectCommand=StudentsCmd
Dim Students As String = "select * from dbo.[students]"
Dim Studentstable As New DataTable()
Using Studentscmd As New SqlCommand(Students, cnn)
    Using Studentadapter As New SqlDataAdapter(Studentscmd) 'This link Adapter with command
        Studentadapter.Fill(Studentstable) 'Can fill straight to DataTable
    End Using
End Using
Datagridview.DataGridView1.DataSource = Studentstable
Datagridview.DataGridView1.Show()