小弟刚学C#,怎么解决TextBox绑定后更新后保存回数据库,

问题描述

以下是部分原代码:请各位大侠为小弟解决下.小第在线等待~~~~~privateSqlConnectionconn;privateSqlCommandcomm;privateSqlDataAdapterda;privateDataSetds=newDataSet();privateDataTabledt;privateSqlCommandBuildersqlcommandbuilder;//privateDataRowdr;privatestringstrSql="select会员编号=MemberID,会员卡号=MemberCard,会员姓名=MemberName,会员电话=MemberPhone,会员地址=MemberAddress,累计消费金额=TotalCost,注册日期=RegDatefrom会员表";//连接数据库的方法publicDataTableDataLink(stringstr){conn=newSqlConnection();conn=newSqlConnection();conn.ConnectionString="server=localhost;database=MarketMagSys;integratedsecurity=true;";comm=newSqlCommand(str,conn);da=newSqlDataAdapter();da.SelectCommand=comm;sqlcommandbuilder=newSqlCommandBuilder(da);//da.UpdateCommand=sqlcommandbuilder.GetUpdateCommand();ds.Clear();da.Fill(ds,"MemberInfo");dt=ds.Tables[0];returndt;}//DataGrid控件显示设置publicvoidDataGridTableStyle(){DataGridTableStylets=newDataGridTableStyle();ts.AlternatingBackColor=Color.LightGray;ts.MappingName=dt.TableName;ts.AllowSorting=false;this.dataGrid1.TableStyles.Add(ts);this.dataGrid1.Select(0);}//初始化时绑定数据源privatevoidForm1_Load(objectsender,EventArgse){this.dataGrid1.DataSource=DataLink(strSql).DefaultView;this.dataGrid2.DataSource=DataLink(strSql).DefaultView;DataGridTableStyle();this.txtMemberNum.DataBindings.Add("Text",dt,"会员编号");this.txtMemberCard.DataBindings.Add("Text",dt,"会员卡号");this.txtMemberName.DataBindings.Add("Text",dt,"会员姓名");this.txtMemberPhone.DataBindings.Add("Text",dt,"会员电话");this.txtMemberTotal.DataBindings.Add("Text",dt,"累计消费金额");this.txtMemberAddress.DataBindings.Add("Text",dt,"会员地址");this.dateTimePicker1.DataBindings.Add("Value",dt,"注册日期");cm=(CurrencyManager)BindingContext[dt];}//点击toolBar按钮发生的事件privatevoidtoolBar1_ButtonClick(objectsender,ToolBarButtonClickEventArgse){if(e.Button.Text=="提交修改"){if(this.txtMemberNum.Text.Trim()==""){MessageBox.Show("会员ID不能为空","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}if(this.txtMemberCard.Text.Trim()==""){MessageBox.Show("会员卡号不能为空","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}if(this.txtMemberTotal.Text.Trim()==""){MessageBox.Show("会员累积消费不能为空","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}if(this.txtMemberName.Text.Trim()==""){MessageBox.Show("会员姓名不能为空","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}introw=dataGrid1.CurrentCell.RowNumber;this.dataGrid1.CurrentCell=newDataGridCell(row+1,0);cm.EndCurrentEdit();//if(dt.GetChanges()!=null)if(ds.HasChanges()){try{问题所在处da.Update(ds.GetChanges(),"MemberInfo");MessageBox.Show("修改成功","提示",MessageBoxButtons.OK);}catch(Exceptionex){MessageBox.Show(ex.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error);this.dt.RejectChanges();}}return;}if(e.Button.Text=="取消修改"){try{cm.CancelCurrentEdit();}catch(Exceptionex){MessageBox.Show(ex.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error);}return;}}总是抛出对于不返回任何键列信息的SelectCommand不支持UpdateCommandSQL的动态生成.可我在SQL数据库为表设置主键了.是不是从数据库取出的数据放在DataTable也要设置主键呢.还是其他问题呢.请各帮小弟解决下问题

解决方案

解决方案二:
使用commandbuilder要求数据库有主键且主键信息包含在返回的数据集中查privatestringstrSql="select会员编号=MemberID,会员卡号=MemberCard,会员姓名=MemberName,会员电话=MemberPhone,会员地址=MemberAddress,累计消费金额=TotalCost,注册日期=RegDatefrom会员表";这句sql是否包含了主键信息?
解决方案三:
我在数据库里字段MemberID里设置的是主键
解决方案四:
selectMemberIDas会员编号,MemberCardas会员编号,MemberNameas会员姓名,MemberPhoneas会员电话,MemberAddressas会员地址,TotalCostas累计消费金额,RegDateas注册日期from会员表
解决方案五:
是没看出什么错误,这样试一下da.Update(ds,"MemberInfo");
解决方案六:
啊,我想起来了,好像有一个属性,允许修改设为true试一下

时间: 2024-09-20 00:08:04

小弟刚学C#,怎么解决TextBox绑定后更新后保存回数据库,的相关文章

小弟刚学完java js servlet jsp推荐个项目视频

问题描述 小弟刚学完javajsservletjsp这些基础的,想做个简单的项目,推荐个网上比较好的项目视频,越详细越实际越好.一步一步,小弟现在对一个项目该怎么入手没有一点头绪 解决方案 解决方案二:该回复于2009-10-13 09:05:38被版主删除解决方案三:ssh我还没学,所以推荐的项目里面尽量先别涉及这方面的~~下一步要学习的东西解决方案四:可以看下v512工作室的web开发以留言板为例讲解的电驴上就有下载

新手-求SSH的书,小弟刚学完JSP,想学一下SSH,大家有什么书推荐吗?

问题描述 求SSH的书,小弟刚学完JSP,想学一下SSH,大家有什么书推荐吗? 如题,刚学完JSP,想学SSH框架,大家有什么相关的推荐吗?望不吝赐教,不胜感激 解决方案 轻量级Java EE企业应用实战:Struts 2+Spring+Hibernate整合开发,他主要讲的是SSH的 解决方案二: 李刚的书讲的还不错,百度一下吧

c c++编程-有没有大神看下 ,小弟刚学c++这个代码运行后输出str不是输出100为什么

问题描述 有没有大神看下 ,小弟刚学c++这个代码运行后输出str不是输出100为什么 #include #include using namespace std; int main(void) { char *str = new char[100]; strcpy(str,"hello imooc"); cout << "*str"; delete[] str; system("pause"); return 0; } 解决方案 如

EJB报异常,刚学,求解决

问题描述 17:15:05,635ERROR[org.jboss.ejb3.cache.simple.SimpleStatefulCache.MUserBLL]problempassivationthread:javax.ejb.EJBException:Couldnotpassivate;failedtosavestateatorg.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.passivateSession(St

小弟刚学C#,请教一下C#的单步执行,以及vs的基本操作

问题描述 请教一下C#的单步执行,以及vs的基本操作 解决方案 解决方案二:基本操作:文件菜单,新建.打开项目编辑菜单,复制粘贴,查找ctrl+f查看,可以打开关闭窗格项目菜单,编译.运行,开始调试f5,单步f11,编译ctrl+f5工具-选项,可以配置帮助,f1解决方案三:很容易上手的

小弟刚学C# 想学习C#和ARM之间通信(网口)的方法

问题描述 自动化行业,主要是通过C#完成上位机编程,发电压参数给ARM,ARM再下发到硬件上.所有想学学怎么用C#编程来和ARM通信,如下发电压值给ARM. 解决方案 解决方案二:谁知道你的ARM有什么通讯模块?解决方案三:这和ARM毫无关系,和你的协议有关.ARM甚至可以运行Windows8呢,上层协议和PC毫无区别.

小弟刚学,求大神解释下运行出来的是什么意思?在RESING容器中

问题描述 Resin-3.0.21(builtThu,10Aug200612:03:19PDT)Copyright(c)1998-2006CauchoTechnology.Allrightsreserved.UsingResin(R)OpenSourceundertheGNUPublicLicense(GPL).Seehttp://www.caucho.comforinformationonResinProfessional,includingcaching,clustering,JNIacce

刚学.NET,求解决一个ToString的问题

问题描述 为什么我平时用都不会出现这个问题,这次用也没有动过头文件里面的代码... 解决方案 解决方案二:string拼写错误.解决方案三:一般这种函数都有提示的不用自己敲解决方案四:eggpain解决方案五:srting低级错误解决方案六:这种拼写错误都看不出来,我怀疑你不适合编程...解决方案七:上面已经正解了

小弟刚学extjs,这段代码看不懂,请各位高手帮忙解释一下,谢谢

问题描述 Ext.BLANK_IMAGE_URL='../../ExtJS/resources/images/default/s.gif';Ext.QuickTips.init();Ext.override(Ext.form.ComboBox,{onKeyUp:function(e){if(this.editable!==false&&!e.isSpecialKey()){if(!this.isExpanded()){//this.onTriggerClick();//this.selec