3

I have a problem with binding data using BindingSource, typed dataset and DataGridView. My problem is: BindingSource, therefore grid, is empty after binding data (bindingSource.Count is 0). I couldn't figure out what I'm doing wrong and I'd be very happy if anyone could help me with this. My application structure is like this: I have two assemblies, one is Winforms UI and other is database class library.

UI

  • DataGridView, datasource as BindingSource
  • BindingSource, datasource = DBAssembly.typedDataset, datamember = DBAssembly.typedDataset.myTable

Database assembly

  • Sql Server CE database
  • Typed Dataset
  • DB class for database operations

UI Code

OnLoad

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

DB Code

constructor

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

BindData()

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

I'd appreciate any help with this.

4

2 に答える 2

1

さて、最初に尋ねることは次のとおりthis.typedDataSet.MyTable.Rows.Countです。つまり、アダプターは何かをしましたか? そうでない場合は、バインディングとは関係ありません。

空ではないと仮定すると、セットアップに使用している正確なコードは何ですか? 次のようになると思います。DataSourceDataMember

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

または、bindingSourceの DataSource を に設定しthis.typedDataSet.MyTableて、テーブルを空白のままにすることもできます。

基本的に、予想するデータのタイプを伝えたと思いますが、これまでのところ、使用したいデータセット/データテーブルを実際に与えていません。

于 2009-01-27T23:26:26.163 に答える
0

基本的に、予測するデータのタイプを伝えたと思いますが、これまでのところ、使用したいデータセット/データテーブルを実際に与えていません。

マーク、これについては正しかった。DB クラスでパブリック DataSet プロパティを作成し、それを BindingSource の DataSource として使用して、これを機能させる必要がありました。助けてくれてありがとう。

于 2009-01-29T20:41:57.767 に答える