使用BindingSource保存数据库中的更改

时间:2012-10-17 20:30:56

标签: c# sql ado.net

我从数据库中检索数据,如下所示:

OleDbDataAdapter dataAdapter 
            = new OleDbDataAdapter("SELECT * "
              + " FROM myTab1, myTab2"
              + " WHERE myTab1.col1 = myTab2.col3"
              , connection);//OleDbConnection connection = new OleDbConnection();
DataTable dataTable = new DataTable("myDataTable");
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;
dataAdapter.Fill(dataTable);  

然后我使用bindingSource来访问我的程序中的数据,一切都很完美。但是在我bindingSource中所做的所有更改之后,我需要将它们保存到数据库中。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

通常你会在Update()上致电DataAdapter

dataAdapter.Update(dataTable);

但是既然你的查询“加入”了两个表,那可能就不那么容易了。您可以将SELECT查询转换为正确的联接:

  "SELECT * "
+ "FROM myTab1 "
+ "JOIN myTab2 ON myTab1.col1 = myTab2.col3"

其他一些选择:

  • 编写一个UPDATE语句,将正确的值放在右表中并设置dataAdapter的{​​{1}}
  • 使用单独的表(每个基表一个)填充数据集并加入您的应用

来自MSDN的更多信息:

http://msdn.microsoft.com/en-us/library/xzb1zw3x(v=vs.80).aspx