日期:2014-05-18  浏览次数:20665 次

SqlDataAdapter.Update问题
一个老问题老困扰我,就是如果我直接使用SqlDataAdapter.Update一个datatable,而这个datatable中没有修改过的标识的话是不是就不能够对数据库中相关数据修改呢?

简而言之:是否存在一种方法能够通过SqlDataAdapter.Update直接上传自己的数据datatable,而不需要先对这个datatable进行修改。

eg:
C# code

                    record_con.Open();
                    SqlDataAdapter record_ada = new SqlDataAdapter("select * from [" + the_temp_patrolling_record_name + "] where ID=" + the_last_tab.Rows[0]["ID"].ToString(), record_con);
                    SqlCommandBuilder record_com = new SqlCommandBuilder(record_ada);
                    record_ada.Update(the_upload_tab);
                    record_con.Close();



这里的the_upload_tab是一个函数的返回值,这段不能够更新数据库中相应行的数据,所以我猜测是因为the_upload_tab没有修改标识所以导致update失败,望各位指正。

------解决方案--------------------
调用DataRow.SetModified方法可以把DataRow.RowState 设置为modified,

探讨

DataRow.RowState 设置为modified

真的可行吗?

无法对属性或索引器“System.Data.DataRow.RowState”赋值 -- 它是只读的

是不是需要其他的设置?