我想实现从两个数据库分别取一个表,然后合并后,更新其中一个数据库。两个数据库中的这个表结构一样。但是,调用update 之后也没错误,也没更新数据库。代码如下,请高手指点:
DataSet ds = new DataSet();
DataSet ds2 = new DataSet();
string str = "select * from table1 ";
OdbcDataAdapter od1_dataAdapter = new OdbcDataAdapter(str,odbcConnection1);
OdbcDataAdapter od2_dataAdapter = new OdbcDataAdapter(str,odbcConnection2);
od1_dataAdapter.Fill(ds, "Test1");
od2_dataAdapter.Fill(ds2,"Test1");
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
this.dataGridView2.DataSource = ds2.Tables[0].DefaultView; ds.Tables["Test1"].PrimaryKey = new DataColumn[1] { ds.Tables["Test1"].Columns["ID"] };
ds2.Tables["Test1"].PrimaryKey = new DataColumn[1] { ds2.Tables["Test1"].Columns["ID"] }; ds2.Merge(ds,false); this.dataGridView2.DataSource = ds2.Tables[0].DefaultView;
od2_dataAdapter.Update(ds2, "Test1");
DataSet ds = new DataSet();
DataSet ds2 = new DataSet();
string str = "select * from table1 ";
OdbcDataAdapter od1_dataAdapter = new OdbcDataAdapter(str,odbcConnection1);
OdbcDataAdapter od2_dataAdapter = new OdbcDataAdapter(str,odbcConnection2);
od1_dataAdapter.Fill(ds, "Test1");
od2_dataAdapter.Fill(ds2,"Test1");
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
this.dataGridView2.DataSource = ds2.Tables[0].DefaultView; ds.Tables["Test1"].PrimaryKey = new DataColumn[1] { ds.Tables["Test1"].Columns["ID"] };
ds2.Tables["Test1"].PrimaryKey = new DataColumn[1] { ds2.Tables["Test1"].Columns["ID"] }; ds2.Merge(ds,false); this.dataGridView2.DataSource = ds2.Tables[0].DefaultView;
od2_dataAdapter.Update(ds2, "Test1");
ds2.Merge(ds);
productsData.AcceptChanges();
以下是MSDN原话,MSDN上面还有相应的DEMO你看过后就会找到答案OdbcDataAdapter.UpdateCommand 属性 [C#]请参见
OdbcDataAdapter 类 | OdbcDataAdapter 成员 | System.Data.Odbc 命名空间 | DeleteCommand | 注意:此命名空间、类或成员仅在 .NET Framework 1.1 版中受支持。
获取或设置 SQL 语句或存储过程,用于更新数据源中的记录。