DataGrid未显示数据
-
12-12-2019 - |
题
我正在尝试在读取CSV文件后在我的移动应用程序上显示一个生成的icetagcode并处理它。到目前为止我有什么:
private void btOpenFile_Click(object sender, EventArgs e)
{
try
{
// Process all data into an array of Object
// this.records array contains objects of type MyRecord
// Create datatable and define columns
DataTable dt = new DataTable("myDt");
dt.Columns.Add( new DataColumn("String A",typeof(string)));
dt.Columns.Add( new DataColumn("Int 1", typeof(int)));
// Loop through and create rows
foreach(MyRecord record in records) {
DataRow row = dt.NewRow();
row[0] = record.stringA;
row[1] = record.int1;
dt.Rows.Add(row);
}
// Create dataset and assign it to the datasource..
DataSet ds = new DataSet("myDs");
ds.Tables.Add(dt);
dataGrid.DataSource = ds;
dataGrid.Refresh();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message,"Error");
}
}
.
在运行我的应用程序时,我得到的是空白数据网格组件。有人能指出我的错误吗?或者如何正确做到这一点?
解决方案
尝试没有数据集 DataGrid.DataSource= DT;
其他提示
试试这将有助于...
DataSet Ds = new DataSet();
DataTable Dt = new DataTable();
Ds.Tables.Add(Dt);
Dt.Columns.Add(new DataColumn("String A", typeof(string)));
Dt.Columns.Add(new DataColumn("Int 1", typeof(int)));
Dt.Rows.Add(new object[] { "Patricia", 3 });
Dt.Rows.Add(new object[] { "John", 4 });
Dt.Rows.Add(new object[] { "Mayer", 5 });
. 而不是:
dataGrid.DataSource = ds;
dataGrid.Refresh();
.
尝试:
dataGrid.SetDataBinding(ds, "myDt");
.
这具有同时设置DataSource和DataMember的效果。
如果您也可以在数据集中的表格中设置数据源,同样工作。如:
datagrid.DataSource = ds.Tables["myDt"];
.
请记住,数据集可以包含多个表,我们必须明确地告诉它哪一个使用或查看哪一个:)
hth
问题是您不能将DataSource引用为DataSet它应该是DataSet.dataTable ... 这里是一个例子
Dataset DS = new Dataset();
DS.Tables.Add(TableName);
//
Populate dataset
//
mydatagrid.Datasource = DS.Tables[0];
.
简而言之,您必须在数据集中引用表中的表以显示数据... 希望这有助于...... :)
我知道它很晚才回答....但它会对他人有所帮助...
DataSet ds = gridUpdate.GridUpdate();
.
(不要担心gridupdate.gridupdate()它的函数来创建数据集)
dataGridView1.DataSource = ds.Tables[0]
. 不隶属于 StackOverflow