2012-08-30 39 views
4

我想在具有自動增加屬性的數據列的DataTable中添加一行。將行值添加到具有自動添加數據列的DataTable

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); 

我不想在Autoincreamented列中插入值。它應該是自動生成的值,但上面的代碼不適合我。

+0

你得到什麼錯誤? –

回答

6

當添加行,而嘗試像

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

DataColumn.AutoIncrement Property

可以使用的DataRow 類的ItemArray財產和傳遞的數組創建一個新的行值。 對於AutoIncrement設置爲true的列,這是一個潛在問題 ,因爲它的值爲 自動生成。要使用ItemArray屬性,請在數組中的列的位置放置空值 。

改變你的代碼,類似

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