atacno = New OleDbDataAdapter("select * from D_Gradetypelist", datacn_icpos)
        datacno.Fill(datacn_set, "olelist")
        datasqa = New SqlDataAdapter("select * from D_Gradetypelist", datacn_sql)
        datasqa.Fill(datacn_set, "olelist1")
        datacn_set.Tables("olelist1").Merge(datacn_set.Tables("olelist"), True)
        DataGridView1.DataSource = datacn_set.Tables("olelist1")
        Try
            datasqa.Update(datacn_set.Tables("olelist1"))
            Label2.Text = datasqa.UpdateBatchSize
        Catch ex As Exception
            Label2.Text = ex.Message.ToString
        End TryDATASET中的两个表已经合并,为什么UPDATE无效?无法回填数据.

解决方案 »

  1.   

    这是因为merge操作不能修改datarow的状态,因此用DataAdapter来进行update操作,不会找到需要更新的数据集。
      

  2.   

    hehe,前几天刚有人问过同样的问题
      

  3.   

    所以在加载的时候,不能用merge来操作,需要自己做循环,然后用原有的数据记录信息产生新的记录,这样才能造成有新的列。参看
    http://blog.csdn.net/Knight94/archive/2006/05/01/704316.aspx
      

  4.   

    要事项批量UPDATE,DataAdapter 查询数据的select语句中必须包含主键。
      

  5.   

    DataAdapter执行Update时,会根据RowState调用相应的Command。因为你的RowState没有改变,所以不会有更新。