dataset对数据库更新的问题,请教大虾 一个有数据的dataset,对里面的数据修改过,并添加了Row后利用sqldataadapter.update(),数据库里的表没改变,是什么原因阿急!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能的原因1、在Update前有没有AcceptChanges或者RejectChanges2、适配器中的InsertCommand和UpdateCommand正确么?3、有没有被触发器干扰 使用了acceptchanges()命令是使用默认生成的第三点不太清楚,请多解释点,多谢 有主健的只是主健用的是[index] ***************************使用了acceptchanges()命令是使用默认生成的第三点不太清楚,请多解释点,多谢*****************************你如果在update前使用了acceptchanges(),当然不会更新数据库,acceptchanges()会把dataset的修改状态置为未修改。 我也刚琢磨出来,利用sqldataAdapter.update()方法,表一定要有主键 例子 呵呵 昨天也是遇到这个问题 自己写的 你可以参考一下OleDbCommand cmd = new OleDbCommand("SELECT * FROM Document", this.conn); this.adapter.SelectCommand = cmd; OleDbCommandBuilder builder = new OleDbCommandBuilder(this.adapter); DataRow[] document = this.dataAccess.Tables["Document"].Select("DocumentId=" + documentId); document[0]["ClassId"] = newClassId; document[0]["Title"] = newTitle; document[0]["RichText"] = newRichText; document[0]["PlainText"] = newPlainText; document[0]["CreateDate"] = newGreateDate; this.adapter.Update(this.dataAccess, "Document"); 还忘了补充,一定要有private SqlCommandBuilder myBuilder;private SqlDataAdapter myDataAdapter;myBuilder = new SqlCommandBuilder(myDataAdapter); update是将当前DataSet中行状态为新增或者修改的通过开始制定的sqlcommand来提交至数据库提交成功后再调用Acceptchanges方法来使得Dataset中刚才有改动的数据也成为合法数据 刚又发现一个问题,如果把设为主键的那项,用了类似RTRIM()这样的函数,也是没办法update()的 GDI+多控件重绘 winform第三方视频控件 实现显示逻辑磁盘,驱动盘,U盘,等其他,能在我的电脑上面找的到的东西 Remoting中的远程类是否必须要有默认无参构造函数? 如何改变窗口title状态(具体如下) 如何实现页面加载直接调用js函数 .net中移动到第n条记录 如何取得进程池中.exe进程的启动参数? 有2道面试考题,难住我了,请大家帮忙。 请高手急救啊 用的VS2003一用RICHTEXTBOX就出现异常,如何解决 做过crm的兄弟们,,有个问题请教一下,,客户和客服的关系是怎么样建立的。
1、在Update前有没有AcceptChanges或者RejectChanges
2、适配器中的InsertCommand和UpdateCommand正确么?
3、有没有被触发器干扰
使用了acceptchanges()命令是使用默认生成的第三点不太清楚,请多解释点,多谢
*****************************
你如果在update前使用了acceptchanges(),当然不会更新数据库,acceptchanges()会把dataset的修改状态置为未修改。
OleDbCommand cmd = new OleDbCommand("SELECT * FROM Document", this.conn);
this.adapter.SelectCommand = cmd;
OleDbCommandBuilder builder = new OleDbCommandBuilder(this.adapter);
DataRow[] document = this.dataAccess.Tables["Document"].Select("DocumentId=" + documentId);
document[0]["ClassId"] = newClassId;
document[0]["Title"] = newTitle;
document[0]["RichText"] = newRichText;
document[0]["PlainText"] = newPlainText;
document[0]["CreateDate"] = newGreateDate;
this.adapter.Update(this.dataAccess, "Document");
private SqlDataAdapter myDataAdapter;myBuilder = new SqlCommandBuilder(myDataAdapter);