0

データはDataTable(11列と3行)に到達しますが、DataGridViewに到達させようとすると、成功しません(エラーなし、空の「DataGridView」のみ)。関連するコードの一部は次のとおりです。

DataGridView SecuritiesGridView1 = new DataGridView();
BindingSource bindingSource1 = new BindingSource();
SecuritiesGridView1.DataSource = bindingSource1;

String connectionString = "Data Source=|DataDirectory|\\PersonalFinanceDB.sdf;Encrypt Database=True;Persist Security Info=True";

SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(DBcommand, connectionString);

DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;

bindingSource1.DataSource = table;
SecuritiesGridView1.DataSource = bindingSource1;
dataAdapter.Fill(table);

MessageBox.Show("Number of columns of table: " + table.Columns.Count.ToString());  // Returns 11
MessageBox.Show("Number of rows of table: " + table.Rows.Count.ToString());  // Returns 3

MessageBox.Show("Number of rows of grid: " + SecuritiesGridView1.RowCount.ToString());  // Returns 0
MessageBox.Show("Number of columns of grid: " + SecuritiesGridView1.ColumnCount.ToString());  // Returns 0

誰かが私が間違っているかもしれないことを知っているだろうか?

4

3 に答える 3

1

テーブルへの入力方法に関係なく、DataGridView を DataTable にバインドする必要があります。

何かのようなもの:

BindingSource myBindingSource = new BindingSource();
myDataGridView.DataSource = myBindingSource;
DataView myDataView = new DataView(myDataTable);
myBindingSource = myDataView;

トリックを行う必要があります。

次に、ビューを変更してデータをフィルタリングできます。それが必要な場合は、次のようにします。

myDataView.RowFilter = (Dessert = 'Ice Cream');

またはそのようなもので、DataGridView はそのビューにフィルターされます。

于 2012-08-24T16:54:02.113 に答える
0

SecuritiesGridView1.DataBind()テーブルにデータを入力した後、 を呼び出す必要があります。

于 2012-08-24T15:11:18.533 に答える
0

最初にデータテーブル「テーブル」に入力し、バインディングソースを SecuritiesGridView1 に割り当ててから、関数 SecuritiesGridView1.DataBind(); を呼び出します。

于 2012-08-24T15:16:23.357 に答える