.net 为什么我的datagrid视图在设置时只显示空行';s数据源到我的数据集

.net 为什么我的datagrid视图在设置时只显示空行';s数据源到我的数据集,.net,winforms,.net,Winforms,我是将DataGridView绑定到数据集的新手。我已经创建了一个数据集,并且(我想)用SQLServerDB中的一个表填充了它。但当我尝试填充datagridview时,它只显示一个空白的7列表,其中包含列标题,如Column1、Column2等。我肯定我遗漏了一些愚蠢的东西,但不知道从哪里开始查找。有人知道怎么了吗 值得一提的是:sql server上的表不是空的 添加initializeComponent不会解决它,就像在本文中一样 编辑 我的数据集似乎没有被填满。Dataset1.表

我是将DataGridView绑定到数据集的新手。我已经创建了一个数据集,并且(我想)用SQLServerDB中的一个表填充了它。但当我尝试填充datagridview时,它只显示一个空白的7列表,其中包含列标题,如Column1、Column2等。我肯定我遗漏了一些愚蠢的东西,但不知道从哪里开始查找。有人知道怎么了吗

  • 值得一提的是:sql server上的表不是空的

  • 添加initializeComponent不会解决它,就像在本文中一样

编辑 我的数据集似乎没有被填满。Dataset1.表(0)中没有行。从GUI上看,似乎有一个叫做AverageWeeklyLabsTableAdapter的东西(见下图)。我想我假设数据集的工作方式类似于LINQ to SQL,其中对象只是自动填充数据,但可能需要调用代码来填充数据集

正在加载事件

    Dim myBindingSource As BindingSource = New BindingSource
    myBindingSource.DataSource = DataSet1.Tables(0) //has no rows
    DataGridView1.DataSource = myBindingSource
    DataGridView1.ReadOnly = True
数据集


当我将数据加载到
datagridview
时,我使用了
BindingSource
,但从您有限的代码来看,您似乎没有这样做

因此,您可以用表数据填充
数据集
,然后用数据加载
BindingSource
,类似于此(为了简洁起见,代码缩短):

根据您的编辑,您似乎没有实际填充数据。您必须使用来自表适配器的填充来从数据库获取数据。此外,.net还希望datatable(基于数据集)具有如下类型的特定对象类型:

var adapter = new AverageWeeklyLabsTableAdapter();
var dataTable = new myForm.DataSet1.AverageWeeklyLabsDataTable
adapter.Fill(dataTable);
bindingSource1.DataSource = dataTable;
datagridview1.DataSource = bindingSource1;
下面是关于tableadapters的另一个问题:


当我将数据加载到
datagridview
时,我使用了
BindingSource
,但从您有限的代码来看,您似乎没有这样做

因此,您可以用表数据填充
数据集
,然后用数据加载
BindingSource
,类似于此(为了简洁起见,代码缩短):

根据您的编辑,您似乎没有实际填充数据。您必须使用来自表适配器的填充来从数据库获取数据。此外,.net还希望datatable(基于数据集)具有如下类型的特定对象类型:

var adapter = new AverageWeeklyLabsTableAdapter();
var dataTable = new myForm.DataSet1.AverageWeeklyLabsDataTable
adapter.Fill(dataTable);
bindingSource1.DataSource = dataTable;
datagridview1.DataSource = bindingSource1;
下面是关于tableadapters的另一个问题:


谢谢,但这段代码不太好。。。Dim myBindingSource As BindingSource=New BindingSource myBindingSource.DataSource=DataSet1.Tables(0)DataGridView1.DataSource=myBindingSource DataGridView1.ReadOnly=True如果放置断点,您是否实际拥有从查询返回的数据?DataSet1.Tables(0)没有行扫描您是否使用更多代码编辑OP?听起来你可能在其他地方有错误。谢谢,但这段代码没有运气。。。Dim myBindingSource As BindingSource=New BindingSource myBindingSource.DataSource=DataSet1.Tables(0)DataGridView1.DataSource=myBindingSource DataGridView1.ReadOnly=True如果放置断点,您是否实际拥有从查询返回的数据?DataSet1.Tables(0)没有行扫描您是否使用更多代码编辑OP?听起来你可能在别处出错了。