DataSet是存在内存中的对象,DataAdapter是与数据库连接信息相关的。
所以要批量更新一个DataSet,需要借助DataAdapter.
static private DataSet CreateCommandAndUpdate( string connectionString, string queryString) { DataSet dataSet = new DataSet();
using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); OleDbDataAdapter adapter = new OleDbDataAdapter(); adapter.SelectCommand = new OleDbCommand(queryString, connection); OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);
adapter.Fill(dataSet);
// Code to modify data in the DataSet here.
// Without the OleDbCommandBuilder, this line would fail. adapter.UpdateCommand = builder.GetUpdateCommand(); adapter.Update(dataSet); } return dataSet; } |
这样的机制也带来一个好处,比如我们想要从一个数据库中取出数据,更新到另一个数据库中去,就可以借助Dataset作为一个中间载体。