我想实现从两个数据库分别取一个表,然后合并后,更新其中一个数据库。两个数据库中的这个表结构一样。但是,调用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");

解决方案 »

  1.   

    UpdateDataSource(ds);
    ds2.Merge(ds);
    productsData.AcceptChanges();
      

  2.   

    肯定不行!你的od2_dataAdapter的UPDATECOMMAND属性写了吗???我建议你查查MSDN上面有关数据是配器的介绍!深入研究一下ADO.NET
    以下是MSDN原话,MSDN上面还有相应的DEMO你看过后就会找到答案OdbcDataAdapter.UpdateCommand 属性  [C#]请参见
    OdbcDataAdapter 类 | OdbcDataAdapter 成员 | System.Data.Odbc 命名空间 | DeleteCommand | 注意:此命名空间、类或成员仅在 .NET Framework 1.1 版中受支持。 
    获取或设置 SQL 语句或存储过程,用于更新数据源中的记录。