VB.Net 用 dataset1 表行填充 DataGridview

Posted

技术标签:

【中文标题】VB.Net 用 dataset1 表行填充 DataGridview【英文标题】:VB.Net Filling DataGridview with dataset1 table rows 【发布时间】:2017-10-04 08:52:39 【问题描述】:

这里的菜鸟,已将 SQL 数据库作为数据源导入表单应用程序,但是当我单击预览时,没有显示任何行。

Public Class Form1
   Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'TODO: This line of code loads data into the "DataSet1.Ac_Billbook" table. You can move, or remove it, as needed.
    'Me.Ac_BillbookTableAdapter.Fill(Me.DataSet1.Ac_Billbook)
    For Each table In DataSet1.Tables
        ComboBox1.Items.Add(table.ToString)
    Next
  End Sub

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      DataGridView1.DataSource = DataSet1.Tables(ComboBox1.SelectedItem)
     'DataGridView1.DataBind()
  End Sub
End Class

这个想法是我可以通过查看表格并快速查看表格来预览表格字段。

【问题讨论】:

试试DataSet1.Tables(ComboBox1.SelectedItem).DefaultView GridView 现在完全空白 【参考方案1】:

您可以分解将表格分配为数据源的行,以便您可以使用断点并使用 VS 的“数据集可视化工具”(带有放大镜的小图标将显示它)功能来检查表格内容.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim dt as New DataTable
    dt = DataSet1.Tables(ComboBox1.SelectedItem).DefaultView
    DataGridView1.DataSource = dt
End Sub

在“DataGridView1.DataSource = dt”的行上放一个断点,看看数据表是否有所需的行。 如果没有数据,也用第一个表测试:

dt = DataSet1.Tables(0).DefaultView

如果仍然没有数据,那么您的数据库表中将一无所获。

【讨论】:

在这一行出现错误:dt = DataSet1.Tables(ComboBox1.SelectedItem).DefaultView) 无法将“System.Data.DataView”类型的对象转换为“System.Data.DataTable”类型。 嗯,然后去掉“.DefaultView”。我看到我仅将 .DefaultView 与 DataSource 一起使用。它应该可以工作。 好的,现在似乎按照我原来的帖子显示列标题 - 没有行 - 我需要指定数据成员吗? 按照上面的说明和图片,您在 DataSet Visualizer 中看到了什么?也是空的吗? 我怀疑,您传递给 Tables() 的表名不匹配或已损坏。顺便说一下,SelectedItem 可以给你一个数组行(广告它不起作用)。我肯定会使用 Combobox1.ValueMember ,将其设置为表名,然后使用 DataSet1.Tables(ComboBox1.**SelectedValue**)。但是,如果您可以枚举您的表,我肯定会使用它们的数字索引(0 到 N)作为 ValueMember 值。如果你能在作业中保持秩序,我会认为这是更安全的方法。

以上是关于VB.Net 用 dataset1 表行填充 DataGridview的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 vb.net 2003 在 asp.net 1.1 中手动填充数据网格?

vb.net 用数据集填充数组

VB.net 如何查询某值在DataSet的哪一行哪一列?

用 subsonic & vb.net 填充 datagridview 组合框列

按顺序用 sqlite 数据库中的表行填充表视图部分

在 Visual Studio 2010 的 vb.net 中创建钻取 rdlc 报告