OleDbDataAdapter.update进行更新数据库的问题??求助!
第一种方式,一个dataset和并另一个dataset,提示"无法找到TableMapping[Table]或DataTable"
private bool writeTowDataSetAccess(string tablename, string dataepath, OleDbConnection con01)
{
bool bl = false;
//定义第二个数据库连接
OleDbConnection conn = null;
//OleDbCommand comm = null;
OleDbDataAdapter oleda02 = null;
//定义第一个数据库连接
OleDbDataAdapter oleda01 = null;
DataSet ds = null;
DataSet ds02 = null;
try
{
//第一个数据库写入datagrid
oleda01 = new OleDbDataAdapter("select * from " + tablename, con01);
ds = new DataSet();
//dataGrid.DataSource = ds;
oleda01.Fill(ds);
//dataGrid.Refresh();
//另一个数据库连接
//创建第二个连接
if (conn != null) conn.Close();
conn = ModelUtility.getAccessConnection();
//创建第二个数据集
oleda02 = new OleDbDataAdapter();
oleda02.SelectCommand = new OleDbCommand("select * from " + tablename, conn);
OleDbCommandBuilder builder = new OleDbCommandBuilder(oleda02);
//打开连接
conn.Open();
//创建第二个dataset,填充dataset
ds02 = new DataSet();
oleda02.Fill(ds02);
//把第一个dataset和第二个合并
ds02.Merge(ds, true, MissingSchemaAction.Add);
//conn.Open();
//comm = new OleDbCommand("select * from " + tablename, conn);
//oleda02 = new OleDbDataAdapter("select * from " + tablename, conn);
//oleda02.SelectCommand = comm;
//OleDbCommandBuilder oledbcb = new OleDbCommandBuilder(oleda02);
////创建第二个dataset
//ds02 = new DataSet();//建立DataSet对象
//oleda02.Fill(ds02);
////把第一个dataset和第二个合并
//ds02.Merge(ds, true, MissingSchemaAction.Add);
//开始写入
label5.Text = "开始写入表:" + tablename;
oleda02.TableMappings.Add(tablename, tablename);
//更新操作
builder.RefreshSchema();
builder.GetUpdateCommand();
oleda02.Update(ds02, tablename);
ds02.AcceptChanges();
label5.Text = "表:[" + tablename + "]写入成功!";
bl = true;
}
catch (Exception ex)
{
bl = false;
MessageBox.Show(ex.Message.ToString());
}
finally
{
if (oleda01 != null)
oleda01.Dispose();
if (oleda02 != null)
oleda02.Dispose();
if (ds != null)
ds.Dispose();
conn.Dispose();
conn.Close();
}
return bl;
}