不能更新数据库,请赐教

问题描述

System.Data.OleDb.OleDbException:操作必须使用一个可更新的查询。atSystem.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32hr)atSystem.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMSdbParams,Object&executeResult)atSystem.Data.OleDb.OleDbCommand.ExecuteCommandText(Object&executeResult)atSystem.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehaviorbehavior,Object&executeResult)atSystem.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehaviorbehavior,Stringmethod)atSystem.Data.OleDb.OleDbCommand.ExecuteNonQuery()atxinyun.aspx.mustread.parentmessage.parentmessage.ImageButton1_Click(Objectsender,ImageClickEventArgse)inC:xinyunaspxmustreadparentmessageparentmessage.aspx.cs:line135

解决方案

解决方案二:
把代码帖出来大哥..
解决方案三:
这是代码:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Text;usingSystem.Data.OleDb;usingSystem.Configuration;usingxinyun.classes.bases;namespacexinyun.aspx.mustread.parentmessage{///<summary>///parentmessage的摘要说明。///</summary>publicclassparentmessage:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRequiredFieldValidator1;protectedSystem.Web.UI.WebControls.TextBoxzuti;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRequiredFieldValidator2;protectedSystem.Web.UI.WebControls.TextBoxname;protectedSystem.Web.UI.WebControls.TextBoxlianxidizhi;protectedSystem.Web.UI.WebControls.TextBoxdianhua;protectedSystem.Web.UI.WebControls.TextBoxmail;protectedSystem.Web.UI.WebControls.RegularExpressionValidatorRegularExpressionValidator1;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRequiredFieldValidator3;protectedSystem.Web.UI.WebControls.TextBoxcontent;protectedSystem.Web.UI.WebControls.ImageButtonImageButton1;protectedSystem.Web.UI.WebControls.ImageButtonImageButton2;publicstringAddtime;protectedSystem.Web.UI.WebControls.RequiredFieldValidatorRequiredFieldValidator4;privateOleDbConnectioncn=newOleDbConnection();privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面}#regionWeb窗体设计器生成的代码overrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}///<summary>///设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///</summary>privatevoidInitializeComponent(){this.ImageButton1.Click+=newSystem.Web.UI.ImageClickEventHandler(this.ImageButton1_Click);this.ImageButton2.Click+=newSystem.Web.UI.ImageClickEventHandler(this.ImageButton2_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidImageButton1_Click(objectsender,System.Web.UI.ImageClickEventArgse){if(this.IsValid){//stp=newst();//if(this.chkIsHidden.Checked)//{//p.IsHidden=true;//}//else//{//p.IsHidden=false;//}Addtime=System.DateTime.Now.ToString();//Addtime=System.DateTime.Now.ToLongTimeString();//intface=Convert.ToInt32(Request.Form["face"].ToString());cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath("../../../db/xinyun.mdb");//取得数据库路径//stringdbPath=System.Configuration.ConfigurationSettings.AppSettings["../../../db/xinyun.mdb"];//定义数据库连接字符串//stringACconnStr="Provider=Microsoft.Jet.OleDb.4.0;DataSource="+Server.MapPath(dbPath);//创建数据库连接对像//OleDbConnectionACconn=newOleDbConnection(ACconnStr);try{//打开数据库//ACconn.Open();cn.Open();////intSSID=Convert.ToInt32(SID.SelectedValue);////判断添加新闻是否已存在//stringACsqlII="select*fromlybwherezuti!='"+this.zuti.Text+"'";////stringACsqlII="select*fromlyb";//OleDbCommandACcommII=newOleDbCommand(ACsqlII,ACconn);//OleDbDataReaderACdrII=ACcommII.ExecuteReader();////stringy="";//if(ACdrII.Read())//{//////if(this.zuti.Text==ACdrII["zuti"].ToString())//{////Response.Write("<script>alert('此信息已添加过');</script>");////Response.Write("<script>history.go(-2);</script>");//Response.Redirect("Error/404b.htm");//}//}////else////{//////this.TextBox1.Text=y;//ACdrII.Close();//if(Convert.ToInt32(SID.SelectedValue)==0)//{//stringACsqlI="insertintolyb(zuti,name,lianxidizhi,dianhua,qq,mail,www,face,content,Addtime,isys)values('"+this.zuti.Text+"','"+this.name.Text+"','"+this.lianxidizhi.Text+"','"+this.dianhua.Text+"','"+this.qq.Text+"','"+this.mail.Text+"','"+this.www.Text+"',"+face+",'"+this.content.Text.ToString().Replace("rn","<br>")+"','"+Addtime+"',"+Convert.ToBoolean(p.IsHidden)+")";stringACsqlI="insertintolyb(zuti,name,lianxidizhi,dianhua,mail,content,Addtime)values('"+this.zuti.Text+"','"+this.name.Text+"','"+this.lianxidizhi.Text+"','"+this.dianhua.Text+"','"+this.mail.Text+"','"+this.content.Text.ToString().Replace("rn","<br>")+"','"+Addtime+"')";OleDbCommandACcommI=newOleDbCommand(ACsqlI,cn);ACcommI.ExecuteNonQuery();Response.Write("<script>alert('留言成功添加');</script>");//}//else//{//stringACsqlI="insertintoArticle(ClassID,ChannelID,Title,LinkUrl,Content,Intro,Author,MY_Email,CopyFrom,MY_Site,Inputer,MY_QQ,UpdateTime)values('"+SID.SelectedValue+"','"+ChannelID.SelectedValue+"','"+Title.Text+"','"+LinkUrl.Text+"','"+Content.Text+"','"+Intro.Text+"','"+Author.Text+"','"+MY_Email.Text+"','"+CopyFrom.Text+"','"+MY_Site.Text+"','"+Inputer.Text+"','"+MY_QQ.Text+"','"+Addtime+"')";////OleDbCommandACcommI=newOleDbCommand(ACsqlI,ACconn);//ACcommI.ExecuteNonQuery();//Response.Write("<script>alert('信息成功添加');</script>");////}}catch(Exceptionex){Response.Write(ex.ToString());}finally{cn.Close();}}}privatevoidImageButton2_Click(objectsender,System.Web.UI.ImageClickEventArgse){this.zuti.Text="";this.name.Text="";this.lianxidizhi.Text="";this.dianhua.Text="";//this.qq.Text="";this.mail.Text="";//this.www.Text="";this.content.Text="";}}}
解决方案四:
跟踪一下"ACsqlI"看看是不是正确的sql语句.
解决方案五:
把你的sql语句response.write出来看看就知道是什么会事了吧?
解决方案六:
已经解决了

时间: 2024-10-31 12:17:44

不能更新数据库,请赐教的相关文章

在同一台机器上,让这3个模拟客户端同时访问这台机器上的同一个数据库。但不知道如何实现,请赐教!

问题描述 在同一台机器上,让这3个模拟客户端同时访问这台机器上的同一个数据库.但不知道如何实现,请赐教! 解决方案 解决方案二:用VB+SQLSERVER2000+ADO练习编写网络版软件,那么在同一台电脑上如何模拟出3个客户端?在同一台机器上,让这3个模拟客户端同时访问这台机器上的同一个数据库.但不知道如何实现,请赐教!解决方案三:数据库连接上直接用IP,不要用(local)就可以模拟了解决方案四:不了解,顶一下~解决方案五:顶................

如何使用DataSet更新数据库??

问题描述 我想通过DataSet更新数据库,可是程序执行后没起作用,请高手指点一下,看我哪里弄错了.谢谢我的程序很简单,整个代码如下:(我是想把tab1表里的数据全部覆盖到tab2里,这两个表在两个数据库中)usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usingSystem.Data.Ora

GridView更新数据库后 无法显示问题!

问题描述 利用TextBox接受用户输入,按钮触发事件在数据库中搜索到一条数据后,在页面中用GridView显示,利用更新按钮修改后可以更新回数据库,但是页面刷新后无法显示更新后的数据.望高手赐教publicpartialclassadmin_Users_Update:System.Web.UI.Page{privatestringtableName="users";//表名privateNameSearchns=newNameSearch();//搜索信息类protectedvoid

使用 DataAdapter 和 DataSet 更新数据库 [C#]

DataAdapter 的 Update 方法可调用来将 DataSet 中的更改解析回数据源.与 Fill 方法类似,Update 方法将 DataSet 的实例和可选的 DataTable 对象或 DataTable 名称用作参数.DataSet 实例是包含已作出的更改的 DataSet,而 DataTable 标识从其中检索更改的表. 当调用 Update 方法时,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT.UPDATE 或 DELETE).当 DataAda

使用LINQ to SQL更新数据库(上):问题重重

在学习LINQ时,我几乎被一个困难所击倒,这就是你从标题中看到的更新数据库的操作.下面我就一 步步带你走入这泥潭,请准备好砖头和口水,Follow me. 从最简单的情况入手 我们以Northwind数据库为例,当需要修改一个产品的ProductName时,可以在客户端直接写下这样的 代码: // List 0 NorthwindDataContext db = new NorthwindDataContext(); Product product = db.Products.Single(p

datagridview-下面通过dataset更新数据库,代码哪里有错误,各位大哥,我都纠结一天了(winform)

问题描述 下面通过dataset更新数据库,代码哪里有错误,各位大哥,我都纠结一天了(winform) //更新数据源的方法 private int UpdateByDataSet(DataSet ds, string strTblName, string strconn) { // dgvHead.Columns["pid"].Visible = true; //dgvHead.Columns["fNo"].Visible = true; //dgvHead.Co

silverlight如何通过EF更新数据库

问题描述 各位高手好!我初学EF,目前的情况是,我使用向导从数据库生成了EF模型,在WCF服务中将查询结果包装在了一个LIST中,再在客户端silverlight的datagrid的itemsource绑定了这个list,查询和显示数据是都没有问题的,但是我实在是想不懂也没办法解决在客户端的datagrid里修改数据后如何再发回到服务端更新数据库呢?过去CS架构下是用dataapdater的,但是现在总感觉少了什么能直接联系客户端和数据库并且能完成更新的东西,实在是才疏学浅,请各位能不能指明一条

求助!!!!dataset更新数据库问题,使用update出现insert语句问题????

问题描述 代码如下:protectedvoidupdata(){OleDbCommandBuilderbuilder=newOleDbCommandBuilder(da);da.InsertCommand=builder.GetInsertCommand();da.UpdateCommand=builder.GetUpdateCommand();da.DeleteCommand=builder.GetDeleteCommand();da.Update(ds,"comment");ds.

dataset 或 datatable merge() 后不能更新数据库是什么原因

问题描述 dataset或datatablemerge()后不能更新数据库是什么原因 解决方案 解决方案二:没说明白解决方案三:我有两个table,分别是t1,t2,我想将t2合并到t1中,如果一个字段一个字段地写,合并后可以更新t1所在的数据库,如果用t1.merge()或t1.ImportRow()则不能更新数据库,不知为何?请指教!

目前哪个ORM框架适合多进程并发更新数据库

问题描述 一直用hibernate,但hibernate复杂的缓存策略,导致它不适合多进程并发更新数据库的操作.问题1:我对hibernate的理解有误吗?问题2:如果hibernate确实不适合以上情景,哪个ORM框架在这方面要好一点?请多指教! 解决方案 解决方案二:该回复于2011-01-12 13:14:32被版主删除解决方案三:ibatis吧hibernate相对来说更重了解决方案四:应该是ibatiS,,我刚刚用了.解决方案五:引用楼主z_berry的回复: 一直用hibernate