报SQL语句出错,但我就是没看出来哪里错了,帮我看看吧!

问题描述

在命名空间:win1中有一段如下程序......privatevoidadd_Click(objectsender,System.EventArgse){fo2=newwin2();fo2.ShowDialog();if(fo2.jilu==0){try{this.constr.Open();OleDbCommandcom2=newOleDbCommand(fo2.str,constr);com2.ExecuteNonQuery();this.constr.Close();shuaxin();}catch(OleDbExceptione4){this.constr.Close();MessageBox.Show("你没有增加任何数据!"+e4.ToString());}}}......第二段(同一个命名空间中的不同窗本):privatevoidadd_Click(objectsender,System.EventArgse){a=this.tbdep.Text;b=this.nametb.Text;c=this.iptb.Text;d=this.infoli.Text;if(b==""||c==""||d==""||a==""){MessageBox.Show("请检查,数据没填完整!");}else{str="INSERTINTOwcb(dep,names,ip,info)VALUES('"+a+"','"+b+"','"+c+"','"+d+"')";MessageBox.Show("增加数据成功!"+str.ToString());}jilu=0;}...现在用的ACCESS数据库,报说我的SQL有语法错误!我用SQL2000就没得这个问题,而且是同样的程序!

解决方案

解决方案二:
是不是+"' 这个中间有空格的原因?改一下,去掉空格str="INSERTINTOwcb(dep,names,ip,info)VALUES('"+a+"','"+b+"','"+c+"','"+d+"')";

解决方案三:
试一试这么写:privatevoidadd_Click(objectsender,System.EventArgse){a=this.tbdep.Text.Replace("'","''");b=this.nametb.Text.Replace("'","''");c=this.iptb.Text.Replace("'","''");d=this.infoli.Text.Replace("'","''");if(b==""¦¦c==""¦¦d==""¦¦a==""){MessageBox.Show("请检查,数据没填完整!");}else{str="INSERTINTOwcb(dep,names,ip,info)VALUES('"+a+"','"+b+"','"+c+"','"+d+"')";MessageBox.Show("增加数据成功!"+str.ToString());}jilu=0;}
解决方案四:
是不是用了什么关键字做字段名,或者是标点用的中文输入法输入的,我以前就写错过
解决方案五:
建议使用参数化的方法,不要再拼SQL了,一个容易错,另外一个在数据库不同时还需要从写SQL代码.
解决方案六:
上面几位的方法都试过了,但还是没解决到问题!
解决方案七:

解决方案八:
错误信息是:System.Data.OleDb.OleDbException:Insertinto语句的语法错误.atSystem.Data.OleDb.Command.ExecteCommandTextErrorHanding(Int32hr)atSystem.Data.OleDb.Command.ExecteCommandTextForSingleResult(tagDBPARAMSdbParams,Object&executeResult)atSystem.Data.OleDb.Command.ExecteCommandText.....
解决方案九:
是否是表字段类型不匹配,或字段个数不对,或者插入字串长度过长。
解决方案十:
sqlserver2000和Access数据库的语法格式,有些是不一样的,比如,你在sqlserver2000里可以insert一个int型字段用引号inserttables(aa)values('9'),但是在access中可能不能要引号。你可以在access中建立一个sql查询,类似sqlserver2000的查询分析器,来帮助你分析sql语法错误!
解决方案十一:
privatevoidadd_Click(objectsender,System.EventArgse){a=this.tbdep.Text.Replace("'","''");b=this.nametb.Text.Replace("'","''");c=this.iptb.Text.Replace("'","''");d=this.infoli.Text.Replace("'","''");if(b==""¦¦c==""¦¦d==""¦¦a==""){MessageBox.Show("请检查,数据没填完整!!");}else{str="INSERTINTOwcb(dep,names,ip,info)VALUES('"+a+"','"+b+"','"+c+"','"+d+"')";MessageBox.Show("增加数据成功!"+str.ToString());}jilu=0;}应当就好用了试一试!
解决方案十二:
str="INSERTINTOwcb(dep,names,ip,info)VALUES('"+a+"','"+b+"','"+c+"','"+d+"')";'"+a+"'右边是不是多了一个空格?
解决方案十三:
设个断点试试?把这个sql语句丢到数据库里运行。再看错在哪?
解决方案十四:
用sql监视器就能捕捉到了!!或者用跟踪器!
解决方案十五:
数据长度超过了数据库设计所赋予得大小
解决方案:
OleDbCommandcom2=newOleDbCommand("insertintowcb(dep,names,ip,info)values('11','11','11','ll')",constr)我直接加入SQL语句都不行,还是说语法有错!可以从数据库中读出数据显示出来,就是没法向其中添加数据删除和修改数据!
解决方案:
insertintowcb(dep,names,ip,info)values('11','11','11','ll')到数据库里操作下。
解决方案:
我现在用的ACCESS,数据库!
解决方案:
str="INSERTINTOwcb(dep,names,ip,info)VALUES('"+a+"','"+b+"','"+c+"','"+d+"')";^”info)VALUES“我不知你这里有没有空格,还是Copy上来的时候才没有空格,这里应该有空格如果这样写应该是不会有错的:str="INSERTINTOwcb(dep,names,ip,info)VALUES('"+a+"','"+b+"','"+c+"','"+d+"')";
解决方案:
还是不行哦,我试过了
解决方案:
该回复于2007-10-18 08:48:38被版主删除
解决方案:
调试呀,把调试中的语句搞出来放查询分析里跑不就知道了
解决方案:
建议你设个断点,然后把得到的sql语句放在查询分析器里看.就知道那里不对了.
解决方案:
在access里insertinto要as成另一个表str="INSERTINTOwcb(dep,names,ip,info)VALUES('"+a+"','"+b+"','"+c+"','"+d+"')astemp";就okey了。
解决方案:
建立了一个c#和vb的讨论群,欢迎大家加入。欢迎高手!群号:47047449
解决方案:
我发现好像很不规范啊。。好多地方没空格。。。。不会是直接COPY的吧。。。无论错误是不是在格式上,先规范了再说。还有。你四个字段都是字符型吗?不过你SQLSERVER没问题。。你试试把'换成"",我记得两个数据库对字符的引号是有区别的。
解决方案:
是不是VALUES的问题SQL对插入的直具有自动转换功能比如你能在SQL里字段类型为INT的列里插入‘01’但在ACCESS里是报错误的
解决方案:
谢谢大家,我一直再努力!!!

时间: 2024-07-31 08:44:38

报SQL语句出错,但我就是没看出来哪里错了,帮我看看吧!的相关文章

mysql:sql语句,想了半天没头绪,请教大家

问题描述 mysql:sql语句,想了半天没头绪,请教大家 收货人 收货地址 订单号 用户ID 张三 北京 1001 1 张四 上海 1002 2 张五 北京 1003 3 张六 广州 1004 4 张三 深圳 1005 5 张七 上海 1006 6 现在有这样的一个需求,每一行假定是一条订单记录,收货人和收货地址字段任意一项与其他订单一致,即认为是关联订单 如果关联订单大于3条,就把这条订单对应的用户ID记录下来.最终要的就是用户ID的列表. 比如:**订单号1001和订单号1005的收货人都

数据-sql语句出错,求大神帮忙解答

问题描述 sql语句出错,求大神帮忙解答 CREATE PROCEDURE test() BEGIN DECLARE fid int; DECLARE days int DEFAULT 1; DECLARE s int default 0; DECLARE company_code VARCHAR; DECLARE cursor_company CURSOR FOR SELECT company FROM test WHERE status = 3; DECLARE CONTINUE HANDL

c# SqlConnection 执行复杂的sql语句出错

问题描述 c#执行如下语句,出错.无论用nonqueryexcute还是readerexcute都不行stringstrSql=@"declare@typechardeclare@idbigintset@id=selectmax(Sid)fromStreamset@type=selectStreamTypefromStreamwhereSid=@idif@type='a'thenselectTalk.Talk,UserOfUp.Latitude,UserOfUp.LongtitudefromUs

请教一个sql语句,试了好久没成功

问题描述 写自己在pl/sql中写过函数实现过,但是效率很低下,数据量一大,直接导致weblogic等待状态要实现的功能是 多条数据,有个相同的主ID,有字段 a, b, c首先将abc散列数据合并成一列,再将多行数据根据ID,合并成一行具体如下:OrderID MainID A B C1 1 你 好 啊2 1 朋 友 !3 2 我 很 好4 2 谢 谢 .要求最后得到两个字段:MainID result1 你好啊朋友!2 我很好谢谢.问题补充:select mainid, substr(max

sql-数据库连接,更改,一直提示该语句出错

问题描述 数据库连接,更改,一直提示该语句出错 OleDbDataAdapter acommand1 = new OleDbDataAdapter(""UPDATE?rz set 1左 = '"" + jilushuzhi_left[j i] + ""'?where?点数='"" + dianshu[j i] + ""'"" tempconn); 一直提示SQL语句出错. 解决方案 附一

json-关于asp josn 接到参数 执行 sql语句 报错问题

问题描述 关于asp josn 接到参数 执行 sql语句 报错问题 <%Dim memberSet member = jsObject() dim dbconnectionuplistDBPathSQLSortLboundUboundDim id=request(""jsoncallback"")set dbconnection=Server.CreateObject(""ADODB.Connection"") DBP

图片-在C#打开sql sever出错,代码没问题

问题描述 在C#打开sql sever出错,代码没问题 解决方案 这不是说得很清楚的么: 1.sqlserver要手动打开"允许远程连接",在它的配置工具中. 2.了有可能是你输错了数据库实例的名称. 解决方案二: 应该不是不允许远程连接的问题,应该就是代码的问题,曾经遇到过 解决方案三: 检查下你的连接字符串,指定成ip地址,这样可以走tcp/ip协议.在防火墙启用1433/tcp端口/协议,并且启用sql server的tcp/ip以及允许远程连接. 解决方案四: 首先,检查连接数

sql语句报错

问题描述 stringupsql="insertintozhangmu(HBDate,SETime,Scity,Ecity,HBhao,Cw,DanJia,Jj,Ry,Rs)values('"+HBdate+"','"+SEtime+"','"+Scity+"','"+Ecity+"','"+hbh+"','"+Cw+"','"+Dj+"','"+

请问大神在数据库中可以执行的sql语句,为什么通过java类连接数据库执行报错

问题描述 请问大神在数据库中可以执行的sql语句,为什么通过java类连接数据库执行报错 报错信息: java.sql.SQLException: Already closed. 解决方案 这个错误提示并不是SQL语句的错误,而是Java的SQL操作类的连接对象已经关闭了,不能执行SQL而报出的异常. 解决方案二: 连接已经关了,当然出错了 解决方案三: 数据库为open,先open 在进行相应cmd命令执行. 解决方案四: 你的连接关闭了,jdbc去连接数据库啊 解决方案五: 这个问题还不是你