空BindingSource问题

时间:2009-01-27 22:58:49

标签: winforms data-binding datagridview strongly-typed-dataset bindingsource

我使用BindingSource,类型化数据集和DataGridView绑定数据时遇到问题。我的问题是:BindingSource,因此grid,绑定数据后为空(bindingSource.Count为0)。我无法弄清楚我做错了什么,如果有人能帮助我,我会很高兴。我的应用程序结构是这样的:我有两个程序集,一个是Winforms UI,另一个是数据库类库。

UI

  • DataGridView,数据源为BindingSource
  • BindingSource,datasource = DBAssembly.typedDataset,datamember = DBAssembly.typedDataset.myTable

数据库汇编

  • Sql Server CE数据库
  • 类型化数据集
  • 数据库操作的DB类

用户界面代码

的OnLoad

this.db = new DB(); 
db.BindData(); 

数据库代码

构造

create typedDataSet object 
create typedDataSetTableAdapters.MyTableTableAdapter object 
create typedDataSetTableAdapters.TableAdapterManager object 

BindData()

this.myTableTableAdapter.Fill(this.typedDataSet.MyTable) 

我很感激任何帮助。

2 个答案:

答案 0 :(得分:1)

嗯,首先要问的是:this.typedDataSet.MyTable.Rows.Count是什么?即适配器做了什么?如果没有,它与绑定无关。

假设它非空,那么您使用什么完全代码来设置DataSourceDataMember?我希望它应该是:

bindingSource.DataSource = this.typedDataSet;
bindingSource.DataMember = "MyTable";
dataGridView.DataSource = bindingSource;

或者,您可以将bindingSource的数据源设置为this.typedDataSet.MyTable,并将表格留空。

基本上,我希望你已经告诉它要预测的类型数据,但到目前为止你还没有给它想要使用的数据集/数据表。

答案 1 :(得分:0)

基本上,我希望您已经告诉它预期的数据类型,但到目前为止,您还没有真正给出它想要使用的数据集/数据表。

马克你对这个问题是正确的。我喜欢在我的DB类中创建一个公共DataSet属性,并将其用作BindingSource的DataSource来使其工作。谢谢你的帮助。