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,然后调用函数 SecuritiesGridView1.DataBind();

于 2012-08-24T15:16:23.357 回答
0

SecuritiesGridView1.DataBind()在用数据填充表格后,您必须拨打电话。

于 2012-08-24T15:11:18.533 回答