我正在尝试在阅读CSV文件并处理后在我的移动应用程序上显示DataGrid
。以下是我到目前为止的情况:
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");
}
}
运行我的应用程序时,我得到的只是一个空白数据网格组件。有人可以指出我的错误吗?或者如何正确地做到这一点?
答案 0 :(得分:1)
尝试不使用DataSet dataGrid.DataSource = dt;
答案 1 :(得分:1)
试试这会有所帮助......
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 });
答案 2 :(得分:0)
而不是:
dataGrid.DataSource = ds;
dataGrid.Refresh();
尝试:
dataGrid.SetDataBinding(ds, "myDt");
这具有同时设置数据源和数据的效果。
答案 3 :(得分:0)
问题是你不能将数据源仅作为数据集引用它应该像Dataset.Datatable ... 这是一个例子
Dataset DS = new Dataset();
DS.Tables.Add(TableName);
//
Populate dataset
//
mydatagrid.Datasource = DS.Tables[0];
因此,简而言之,您必须引用数据集中的表来显示数据... 希望这有助于...:)
答案 4 :(得分:0)
如果你将DataSource设置为DataSet中的表,它也应该可以工作......如:
datagrid.DataSource = ds.Tables["myDt"];
请记住,数据集可能包含多个表格,我们必须明确告诉它使用哪个表格或在哪里查看:)
HTH
答案 5 :(得分:-1)
我知道回答的时间已经很晚了......但这对其他人有帮助......
DataSet ds = gridUpdate.GridUpdate();
(不要担心gridUpdate.GridUpdate()是我创建数据集的函数)
dataGridView1.DataSource = ds.Tables[0]