将数据添加到数据集中的行?

时间:2012-09-20 10:02:45

标签: c# dataset row

我正在尝试将数据添加到数据集中的某一行,但数据总是在新行上?

我需要在其列下填充数据。 I need something like Ds.Tables[0].Rows[1].add("Item")

enter image description here

这就是我插入数据的方式:

DataSet ds = new DataSet();
            ds.Tables.Add("Properties");
            //GPS
            ds.Tables[0].Columns.Add(ArrayProperties[0].FormMobiField);
            ds.Tables[0].Rows.Add(ArrayProperties[0].Value);
            //Street Num and Name
            ds.Tables[0].Columns.Add(ArrayProperties[3].FormMobiField);      
            ds.Tables[0].Rows.Add(ArrayProperties[3].Value);
            //Suburb
            ds.Tables[0].Columns.Add(ArrayProperties[6].FormMobiField);
            ds.Tables[0].Rows.Add(ArrayProperties[6].Value);
            //City
            ds.Tables[0].Columns.Add(ArrayProperties[7].FormMobiField);
            ds.Tables[0].Rows.Add(ArrayProperties[7].Value);
            //Province
            ds.Tables[0].Columns.Add(ArrayProperties[8].FormMobiField);
            ds.Tables[0].Rows.Add(ArrayProperties[8].Value);
            //Locality Map
            ds.Tables[0].Columns.Add(ArrayProperties[9].FormMobiField);
            ds.Tables[0].Rows.Add(ArrayProperties[9].Value);
            //Property Type
            ds.Tables[0].Columns.Add(ArrayProperties[10].FormMobiField);
            ds.Tables[0].Rows.Add(ArrayProperties[10].Value);

3 个答案:

答案 0 :(得分:7)

只需从DataTable获取一个新行,然后将该行添加到表中,使用DataTable.NewRow方法

DataRow dr = ds.Tables[0].NewRow();
dr["Column1"] = "value";
dr["Column2"] = "value";
dr["Column3"] = "value";

ds.Tables[0].Rows.Add(dr);

您在添加每个列后添加行,您可以先添加所有列来创建数据表的结构,然后使用DataTable.NewRow()获取新行,稍后您可以将该行添加到数据表中。添加完所有列后,您还可以尝试:

ds.Tables[0].Rows.Add(ArrayProperties[0].Value,ArrayProperties[1].Value,ArrayProperties[2].Value,ArrayProperties[3].Value);

答案 1 :(得分:0)

Datatable的列集合关注表结构。在您的代码中,您可以混合添加列和填充文件。

首先应该创建结构(未经过测试,可能会出现语法错误):

Dataset ds = new Dataset();
Datatable dt = new Datatable();

dt.columns.add(new Column.add(...));
...
dt.columns.add(new Column.add(...));

ds.Tables.add(dt);

然后:

Datarow r = ds.tables[0].NewRow();
r["column1"] = value1;
...
r["columnX"] = valueX;

ds.Tables[0].rows.add(r);

有关详细信息,请参阅此msdn article

答案 2 :(得分:0)

在添加时添加列。要填充行,请执行以下操作。

foreach (DataRow row in ds.Tables[0]) // Loop over the rows.
        {
               row[ArrayProperties[i].FormMobiField]=ArrayProperties[0].Value;
               i++;
            }

如果它不起作用,请告诉我,