无法在桌面应用程序中绑定vb.net中的gridview

时间:2013-05-12 17:26:23

标签: vb.net datagridview datasource

我有一个gridview,我在该程序中将数据集指定为数据源。

我的Form_Load()事件是:

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim cn As New SqlConnection("Data Source=HCL-43AF369E5A0;Initial Catalog=Exam;Integrated Security=True")
    Dim cmd As SqlCommand
    Dim da As SqlDataAdapter
    Dim ds As DataSet
    cn.Open()
    cmd = New SqlCommand("Select * from Contact", cn)
    da = New SqlDataAdapter(cmd)
    ds = New DataSet
    da.Fill(ds)
    cn.Close()

    DataGridView1.DataSource = ds

End Sub

我的代码中有什么错误?我调试了代码,发现数据集提取数据但无法将其绑定到gridview。

请帮忙。

2 个答案:

答案 0 :(得分:1)

您必须将Datatable指定为DataGridView1.DataSource。不是DataSet。使用ds.Tables()属性。

答案 1 :(得分:0)

正式方式

Dim cn As New SqlConnection("Data Source=HCL-43AF369E5A0;Initial Catalog=Exam;Integrated Security=True")
Dim cmd As SqlCommand        
Dim da As SqlDataAdapter
Dim ds As DataSet
cn.Open()
cmd = New SqlCommand("Select * from Contact", cn)
da = New SqlDataAdapter(cmd)
ds = New DataSet
da.Fill(ds)                    // edit here like      da.fill(ds, "table name")
cn.Close()

DataGridView1.DataSource = ds
DataGridView1.DataMember = "table name"

//表名与数据库中的名称不同

您的数据集实际上是通过执行查询获得的数据,例如“select * from tablename”

即使你可以在数据集中有多个表,所以它的形式方法是给出数据名称。