以上代码是更新数据库中的一行记录,经测试,没有报错但是数据库并没有的到更新,为什么?如果去掉this.hotel30DataSet.Tables["alinusers"].AcceptChanges();则报错。
===================================================================================
不能先调用AcceptChanges() 再调用update() 应该反过来 先更新再AcceptChanges();去掉了会报错 报什么错呢?
===================================================================================
不能先调用AcceptChanges() 再调用update() 应该反过来 先更新再AcceptChanges();去掉了会报错 报什么错呢?
解决方案 »
- 怎样进行截图?
- DataGridView中部分行排序的问题
- 【跪求】基于C#的神经网络识别的可直接用的源代码
- 用System.net.mail.MailMessage 向OUTLOOK发送会议邀请,循环会议的邀请和取消
- session的问题错误提示 ”未将对象引用设置到对象的实例。“
- 我的主菜单项A,点击A可以下拉出菜单来,在下拉菜单中有A1这个菜单项,它又有子菜单项A11,A12,A13.
- 我想把 字符"CrystalDecisions.Shared.PaperSize.PaperA4" 转成对象 rystalDecisions.Shared.PaperSize.PaperA4,请帮忙
- 一个比较难的问题,C#中如何删除除数据库中有的记录的所有文件
- winform 中发送邮件出错
- 11月11日北京.NET俱乐部活动通告
- 求助C#中WinFrom中调用TreeView控件的问题,急急急!!!!
- RichTextBox中输入Tab的问题!
=================================================================
报的错误很明显是你的updatecommand错误
之所以你的测试代码可以通过 那时因为测试代码是newrow那么update时调用的是insertCommand来处理
而现在你是在做一个更新操作 所以报错了按你讲的方法试了一下,还是出现上述错误。
=====================================
应该反过来 先更新再AcceptChanges(); 这只是其中一个问题
SqlDataAdapter thisAdapter = new SqlDataAdapter("SELECT * FROM alinusers", thisConnection);
SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);
hotel30DataSet.Clear();
thisAdapter.Fill(hotel30DataSet, "alinusers"); string userPWD = "123456"; this.hotel30DataSet.Tables["alinusers"].Rows[index]["uname"] = addUserDlg.userCodeBox.Text;
this.hotel30DataSet.Tables["alinusers"].Rows[index]["alevel"] = 0;
this.hotel30DataSet.Tables["alinusers"].Rows[index]["upass"] = userPWD;
this.hotel30DataSet.Tables["alinusers"].Rows[index]["describ"] = addUserDlg.userNameBox.Text;
this.hotel30DataSet.Tables["alinusers"].Rows[index]["depart"] = addUserDlg.departcomboBox.Text;
this.hotel30DataSet.Tables["alinusers"].Rows[index]["Rights"] = addUserDlg.functionRightBox.Text;
this.hotel30DataSet.Tables["alinusers"].Rows[index]["login_right"] = addUserDlg.systemRightBox.Text;
this.hotel30DataSet.Tables["alinusers"].Rows[index]["reports_right"] = addUserDlg.reportRightBox.Text; thisAdapter.Update(this.hotel30DataSet, "alinusers"); thisConnection.Close();用以上代码更新是没有问题的,但是是不是没有必要这么做?
很明显,数据库已经连接上了,包括Adapter也已经定义了。
很明显,数据库已经连接上了,包括Adapter也已经定义了。
===============================================
这个可以的代码 是使用sqlcommandbuilder来自动生成updatecommand的模式 不知道你指的没必要是什么意思,你不能更新的代码就是updatecommand错误 如果不使用sqlcommandbuilder来自动生成updatecommand,那么你需要自己来做这个工作.在指定了正确的updatecommand后 你就可以调用Adapter.Updat()方法来更新数据库了