0

DataGrid在读取 CSV 文件并对其进行处理后,我试图在我的移动应用程序上显示一个。这是我到目前为止所拥有的:

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");
    }
}

运行我的应用程序时,我得到的只是一个空白的数据网格组件。有人可以指出我的错误吗?或者如何正确地做到这一点?

4

6 回答 6

1

尝试不使用 DataSet dataGrid.DataSource = dt;

于 2012-05-21T11:52:32.883 回答
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 });
于 2012-05-21T12:34:12.130 回答
0

代替:

dataGrid.DataSource = ds;         
dataGrid.Refresh(); 

尝试:

dataGrid.SetDataBinding(ds, "myDt");

这具有同时设置数据源和数据成员的效果。

于 2012-05-21T11:53:56.930 回答
0

问题是您不能仅将数据源引用为 Dataset 它应该类似于 Dataset.Datatable ... 这是一个示例

Dataset DS = new Dataset();
DS.Tables.Add(TableName);

//
Populate dataset
//

mydatagrid.Datasource = DS.Tables[0];

所以简而言之,你必须参考数据集中的表格来显示数据......希望这有帮助...... :)

于 2012-05-21T12:43:22.580 回答
0

如果您也将 DataSource 设置为 DataSet 内的表,它应该也能正常工作..类似于:

datagrid.DataSource = ds.Tables["myDt"];

请记住,一个数据集可能包含多个表,我们必须明确告诉它使用哪一个或在哪里查找 :)

hth

于 2012-05-21T12:44:53.533 回答
-1

我知道现在回答很晚......但这对其他人会有所帮助......

DataSet ds = gridUpdate.GridUpdate();

(不用担心 gridUpdate.GridUpdate() 它是我创建数据集的功能)

dataGridView1.DataSource = ds.Tables[0]
于 2015-03-02T21:30:31.200 回答