C# 在数据集中更新datatable

C# 在数据集中更新datatable,c#,asp.net,C#,Asp.net,我想知道如何更新数据集中的Datatable。我有一个Datatable,其中包含某项的详细信息。现在我想出于某种目的将其添加到数据集中并进行更新。请给我一些解决此问题的建议 这是我的代码: DataRow dr; dr = Basket_DataTable.NewRow(); Basket_DataTable.Rows.Add(dr); dr["PId"] = get

我想知道如何更新数据集中的Datatable。我有一个Datatable,其中包含某项的详细信息。现在我想出于某种目的将其添加到数据集中并进行更新。请给我一些解决此问题的建议

这是我的代码:

                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是我需要添加到数据集并更新的数据表

我相信您希望向数据集中的现有数据表添加新行。您的
Basket\u 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);

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

我相信您希望向数据集中的现有数据表添加新行。您的
Basket\u 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);

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

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

DataTable Basket_DataTable_copy = Basket_DataTable.Copy();
yourDataSet.Tables.Add(Basket_DataTable_copy);
然后您可以在Basket\u DataTable\u copy上进行更新


请参见

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

DataTable Basket_DataTable_copy = Basket_DataTable.Copy();
yourDataSet.Tables.Add(Basket_DataTable_copy);
然后您可以在Basket\u DataTable\u copy上进行更新


如果要将更改提交到数据库,请参阅不要调用
AcceptChanges
。对数据库使用
DataAdapter
,“如何更新数据集中的数据表”,然后“我想将其添加到数据集中”。问题到底是什么?@TimSchmelter:我想添加然后更新..如果它在
数据集中
,为什么需要添加它?它是通过设计器创建的强类型数据集还是手动创建的松散类型数据集?无论如何,您是否尝试过
dataSet.Tables.Add
?如果要将更改提交到数据库,请不要调用
AcceptChanges
。对数据库使用
DataAdapter
,“如何更新数据集中的数据表”,然后“我想将其添加到数据集中”。问题到底是什么?@TimSchmelter:我想添加然后更新..如果它在
数据集中
,为什么需要添加它?它是通过设计器创建的强类型数据集还是手动创建的松散类型数据集?无论如何,您是否尝试过
dataSet.Tables.Add
?如果我添加它,它不会更新。它会给我一个错误“datatable ready in dataSet”。:是的,我已将datatable添加到dataSet,我想更新dataSet中Basket\u datatable的新行。@Masterbrain,您不会将该行添加到datatable。我的编辑对你有用吗?第一次它工作正常。但是在它给我相同的错误“DataTable已经属于另一个数据集。”@Masterbrain,你正在尝试将该数据表添加到某个新数据集吗?如果是这样,你可以尝试
DataTable.Clone()
,如果我添加它不更新。它给我一个错误“DataTable已经在数据集中”:是,我已将数据表添加到数据集,我想更新数据集中新的数据表行。@Masterbrain,您没有将该行添加到数据表中。我的编辑对你有用吗?第一次它工作正常。但是在它给我相同的错误“DataTable已经属于另一个数据集。”@Masterbrain,你正在尝试将该数据表添加到某个新数据集吗?如果是,你可以尝试
DataTable.Clone()