如何将数据行添加到已存在的数据表中?

时间:2011-08-29 20:26:47

标签: c# datatable

我有一个已填充的数据表。现在我想向该数据表添加几行,但是某些行可能已经存在于datatable中。我知道它不必要但是这是必需的。

我尝试了几件事并得到了#34;此表中已存在该行:&这一行属于其他一些表"我也尝试过importRow,但我想它可以避免dafault的重复。

有没有办法做到这一点。如果数据表有7行,我想再添加3行,无论它是否已经存在。我的目标是向调用函数发送10行。

或者还有其他方法吗?

更新

使用 rowsToAdd.CopyToDataTable(dsCount.Tables[2], LoadOption.PreserveChanges);有效,但我不确定它是否正确。

5 个答案:

答案 0 :(得分:4)

您可以使用以下代码

DataTable中添加新行
DataRow newRow = dataTable.NewRow();
dataTable.Rows.Add(newRow);

答案 1 :(得分:3)

使用NewRow()函数创建一个新行。

var dataTable = new DataTable();
var dataRow = dataTable.NewRow();

然后将新行添加到数据表

dataTable.Rows.Add(dataRow)

答案 2 :(得分:3)

要检查是否有重复项,请尝试

if (table.Rows.Contain(PriKeyTypeValue)) /*See if a Primary Key Value is in 
the table already */
    continue;
else
    table.Row.Add(value1, value2, value3);

如果您希望能够插入重复的行,但又不想抛出异常,则将主键设置为唯一的自增量int,然后您可以根据需要插入尽可能多的重复行,而无需检查查看表是否包含该值。只要确保重复就足够了。有很多设置主键只是搜索它的例子(msdn至少有一个)。这是一个例子:

DataTable table = new DataTable();

table.Columns.Add("Column", typeof(int));

DataColumn column = table.Columns["Column"];
column.Unique = true;
column.AutoIncrement = true;
column.AutoIncrementStep = 1; //change these to whatever works for you
column.AutoIncrementSeed = 1;
table.PrimaryKey = new DataColumn[] { column };

答案 3 :(得分:1)

我相信你可以使用DataTable的NewRow()函数,如果你只是在表中附加一行。

DataTable table = new DataTable();    
DataRow row = table.NewRow();

table.Rows.Add(row);

那还不够吗?

答案 4 :(得分:0)

最直接的方法。花了几个小时尝试其他所有内容之后。

DataRow dr = ds.Tables[0].NewRow();
dr["ColumnName1"] = "columnvalue"; //string
dr["ColumnName2"] = 123 //int
ds.Tables[0].Rows.Add(dr);