更新数据集内的数据表

时间:2013-01-10 11:28:12

标签: c# asp.net

我想知道如何更新数据集内的数据表。我有一个数据表,其中我有一些项目的详细信息。现在我想将它添加到数据集中用于某种目的并更新它。给我一些建议解决这个问题..

这是我的代码:

                DataRow dr;
                dr = Basket_DataTable.NewRow();
                Basket_DataTable.Rows.Add(dr);
                dr["PId"] = getPId.ToString();
                dr["ProductName"] = getProductName.ToString();
                dr["ImagePath"] = getImagePath.ToString();
                dr["ProductPrice"] = getProductPrice.ToString();
                dr["Quantity"] = getQuantity.ToString();
                dr["ProductDescription"] = getProductDescription.ToString();
                dr["TotalPrice"] = getProductPrice.ToString();
                Basket_DataTable.AcceptChanges();

Basket_DataTable是我需要添加到数据集并更新的数据表..

2 个答案:

答案 0 :(得分:1)

我相信您希望将新行添加到DataSet中的现有DataTable中。您的Basket_DataTable应该引用数据集中的数据表,而不是创建新的DataTable。

喜欢的东西。

//Create new Row from your DataTable in DataSet
DataRow dr = yourDataSet.Tables["Basket_DataTable"].NewRow();
// here you can refer to your datatable with the index as well 
//e.g. yourDataSet.Tables[0]

Basket_DataTable.Rows.Add(dr);
dr["PId"] = getPId.ToString();
dr["ProductName"] = getProductName.ToString();
dr["ImagePath"] = getImagePath.ToString();
dr["ProductPrice"] = getProductPrice.ToString();
dr["Quantity"] = getQuantity.ToString();
dr["ProductDescription"] = getProductDescription.ToString();
dr["TotalPrice"] = getProductPrice.ToString();

//Remember to add your row to the table. 
yourDataSet.Tables["Basket_DataTable"].Rows.Add(dr);

在当前代码中,您不是将新行添加到数据表中。请记住在数据表中包含该行。

答案 1 :(得分:0)

如果DataTable已经存在于现有DataSet中,但您想将其添加到另一个DataSet中,则需要先创建一个副本 - 一个DataTable实例只能有一个父DataSet。

DataTable Basket_DataTable_copy = Basket_DataTable.Copy();
yourDataSet.Tables.Add(Basket_DataTable_copy);

然后你可以在Basket_DataTable_copy上进行更新

请参阅DataTable.Copy on MSDN