0

在我的项目中,我想使用 C# 更新数据库表。Database表的数据也在DataSet中。每当我更改 DataSet 行值然后单击按钮时,数据库表都应该更新。

目前,我正在删除所有数据库表(DELETE 查询),然后再次向其中添加 DataSet 数据(INSERT 查询)。这真是太可怕了。(我后来意识到这一点)

如何将 DataSet 的行添加到已更改的数据库表中?我不知道从哪里开始。我尝试给出查询“插入”,它使数据库表中的数据加倍。或者还有其他方法吗?请帮忙。

4

3 回答 3

1

你的意思是这样的吗?

protected void Page_Load(object sender, EventArgs e)
 {
  DataTable dtDocOperations = new DataTable();
  dtDocOperations.Columns.Add("ButtonRole");
  dtDocOperations.Columns.Add("OperattionCode");
  dtDocOperations.Rows.Add(new Object[] { "MR", "V" });
  dtDocOperations.Rows.Add(new Object[] { "MR", "A" });
  dtDocOperations.Rows.Add(new Object[] { "MR", "R" });
  Session["DocOperattions"] = dtDocOperations;
  dtDocOperations.AcceptChanges(); // once AcceptChanges called then you can get the modified rows

  dtDocOperations.Rows[0]["ButtonRole"] = "mr1";
  DataTable dt = dtDocOperations.GetChanges(DataRowState.Modified);
 }

dtDocOperations.AcceptChanges();

 DataTable dt = dtDocOperations.GetChanges(DataRowState.Modified);

您可以使用修改后的行填充数据表

于 2012-11-15T07:39:16.623 回答
0

查看 DataSet.AcceptChanges() 方法。

这是msdn文章的详细信息

http://msdn.microsoft.com/en-us/library/system.data.dataset.acceptchanges.aspx

于 2012-11-15T07:41:23.140 回答
0

需要注意的几点:
1. 您可能希望使用 ORM: Entity FrameworkNHibernateDapper是一些需要考虑的解决方案。
2. 如果您使用 Gridview 或其他一些控件,它们通常可以自动处理这种情况以进行简单的数据绑定。
3.您可以随时手动对每个主键运行查询以检查ID是否存在。如果是则运行更新,如果不是,则运行插入。

于 2012-11-15T07:42:44.670 回答