如何将数据行添加到已存在的数据表?
我有一个已经填充的数据表。现在我想添加几行到那个数据表,但是一些行可能已经存在于数据表中。我知道它没有要求,但这是要求。如何将数据行添加到已存在的数据表?
我试了几件事情,并得到了“该表已存在的行:&这一行属于某个其他表”。我也试过importRow,但我想它避免了重复由dafault。
有没有办法做到这一点。如果数据表有7行,我想要添加3行,无论它是否已经存在或没有。我的目标是发送10行到调用函数。
或者还有其他方法吗?
UPDATE
使用 rowsToAdd.CopyToDataTable(dsCount.Tables[2], LoadOption.PreserveChanges);
的作品,但我不知道这是正确的方式。
来检查任何重复尝试
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 };
我相信你可以使用DataTable的NewRow()函数,如果你只是将一行附加到表中。
DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);
这样不够吗?
我不认为它会增加行,直到你明确地调用'datatable.Rows.Add'方法 –
@哈里斯哈桑:你是对的那部分,并且我已经更新了我的答案。我认为只要他们在桌面上没有任何独特的限制,这样做就行,对吧?当然,它比OP会尝试做什么更适合,对吗? –
您可以使用DataTable
下面的代码
DataRow newRow = dataTable.NewRow();
dataTable.Rows.Add(newRow);
添加新行创建一个使用NEWROW()函数创建一个新的行。
var dataTable = new DataTable();
var dataRow = dataTable.NewRow();
然后添加新行到您的数据表
dataTable.Rows.Add(dataRow)
@上面的代码不会添加已经存在的行。我的需求有时需要添加已有的行来进行计数。 – Vani
rowsToAdd.CopyToDataTable(dsCount.Tables [2],LoadOption.PreserveChanges);这是工作,但不知道是否正确做 – Vani