2013-01-10 85 views
0

我想知道如何更新数据集内的数据表。我有一个数据表,其中我有一些项目的详细信息。现在我想将其添加到数据集中用于某种目的和更新it.Give我一些suggesions解决这个..更新数据集内的数据表

这是我的代码:

   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是我的数据表,我需要添加到数据库和更新..

+0

如果要更改提交到数据库,请不要叫'AcceptChanges'。使用'DataAdapter'来[更新](http://msdn.microsoft.com/zh-cn/library/system.data.common.dataadapter.update.aspx)数据库。 –

+2

_“如何更新数据集内的数据表”_ _然后_“我想将其添加到数据集中”_。实际上有什么问题? –

+0

@TimSchmelter:我想添加,然后更新.. – coder

回答

0

我相信你想要将新行添加到DataSet中的现有DataTable。而不是创建一个新的数据表,您的Basket_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); 

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

+0

如果我添加它不更新。它给我一个错误“数据集已经在数据集中”。 – coder

+0

@Masterbrain,检查编辑 – Habib

+0

:是的,我已经将数据表添加到数据集,我想更新数据集中的Basket_DataTable的新行.. – coder

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