我有一个已填充的数据表。现在我想向该数据表添加几行,但是某些行可能已经存在于datatable中。我知道它不必要但是这是必需的。
我尝试了几件事并得到了#34;此表中已存在该行:&这一行属于其他一些表"我也尝试过importRow,但我想它可以避免dafault的重复。
有没有办法做到这一点。如果数据表有7行,我想再添加3行,无论它是否已经存在。我的目标是向调用函数发送10行。
或者还有其他方法吗?
更新
使用
rowsToAdd.CopyToDataTable(dsCount.Tables[2], LoadOption.PreserveChanges);
有效,但我不确定它是否正确。
答案 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);