简体   繁体   English

将行值添加到具有AutoIncreamented DataColumn的DataTable中

[英]Add Row Values to DataTable Having AutoIncreamented DataColumn

I want to add a row in a DataTable having a Data Column which has an auto Increament Property. 我想在具有数据列的DataTable中添加一行,该列具有自动Increament属性。

DataTable tblproduct = new DataTable();

DataColumn CartItemId = new DataColumn();
CartItemId.ColumnName = "CartItemId";
CartItemId.DataType = System.Type.GetType("System.Int32");
CartItemId.AutoIncrement = true;
CartItemId.AutoIncrementSeed = 1;
CartItemId.AutoIncrementStep = 1;
CartItemId.ReadOnly = true;
CartItemId.Unique = true;

tblproduct.Columns.Add(CartItemId);
tblproduct.Columns.Add("CampaignId", typeof(int));
tblproduct.Columns.Add("SubCatId", typeof(int));
tblproduct.Columns.Add("Size", typeof(string));
tblproduct.Columns.Add("Qty", typeof(int));

tblproduct.Rows.Add(3, 345,"Hello", 1);
tblproduct.Rows.Add(5, 3455,"Hecfghhgdfllo", 8);

I don't want to insert the values in Autoincreamented column. 我不想在“自动隐藏”列中插入值。 It should be Autogenerated value but above code didn't work for me. 它应该是自动生成的值,但是上面的代码对我不起作用。

When adding the row, rather try something like 添加行时,请尝试类似

        DataRow dr = tblproduct.NewRow();
        dr["CampaignId"] = 3;
        dr["SubCatId"] = 345;
        dr["Size"] = "Hello";
        dr["Qty"] = 1;
        tblproduct.Rows.Add(dr);

also from DataColumn.AutoIncrement Property 也来自DataColumn.AutoIncrement属性

You can create a new row using the ItemArray property of the DataRow class and passing in an array of values. 您可以使用DataRow类的ItemArray属性并传递值数组来创建新行。 This is a potential problem for a column with its AutoIncrement set to true, because its value is generated automatically. 对于其AutoIncrement设置为true的列,这是一个潜在的问题,因为其值是自动生成的。 To use the ItemArray property, place null in the column's position in the array. 若要使用ItemArray属性,请将null在数组中列的位置。

change your code to something like 将您的代码更改为

        tblproduct.Rows.Add(null,3, 345, "Hello", 1);
        tblproduct.Rows.Add(null,5, 3455, "Hecfghhgdfllo", 8); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM