问题描述
当我插入数据的时候提示:'sex'附近有语法错误publicvoidInsert(stringmemberName,stringsex,stringage,stringaddr){sql="INSERTINTO[Member]([MemberName][Sex][Age][Addr])VALUES('"+memberName+"','"+sex+"','"+age+"','"+addr+"')";objBase.Execute(sql);}
解决方案
本帖最后由 EtilMichael 于 2012-02-04 21:49:26 编辑
解决方案二:
哥,你的values呢?insertintovalues()
解决方案三:
sql="INSERTINTO[Member]([MemberName],[Sex],[Age],[Addr])VALUES('"+memberName+"','"+sex+"','"+age+"','"+addr+"')";
解决方案四:
引用2楼yiuke的回复:
sql="INSERTINTO[Member]([MemberName],[Sex],[Age],[Addr])VALUES('"+memberName+"','"+sex+"','"+age+"','"+addr+"')";
逗号
解决方案五:
sql="INSERTINTO[Member]([MemberName],[Sex],[Age],[Addr])VALUES('"+memberName+"','"+sex+"','"+age+"','"+addr+"')";
解决方案六:
好像不是那个问题哦,我COPY了你的代码过去还是一样的错误
解决方案七:
objBase.Execute(sql);这行位置打个断点,运行到此处跟踪一下sql的最终结果字符串,把变量组合生成后的字符串粘过来看一下~
解决方案八:
引用6楼yiuke的回复:
objBase.Execute(sql);这行位置打个断点,运行到此处跟踪一下sql的最终结果字符串,把变量组合生成后的字符串粘过来看一下~
估计是你的变量sex的值有问题,假设你传过来的值是类似",男-"其中包含有特殊符号,就会有错误!平时写代码不建议使用SQL拼接,一则容易出错,排查困难,二则容易引起SQL注入,所以你应该研究一下参数化查询!
解决方案九:
"INSERTINTO[Member]([MemberName][Sex][Age][Addr])VALUES('df','1','34','g')"
解决方案十:
<div>姓名:<asp:TextBoxID="txtMemberName"runat="server"></asp:TextBox><br/><asp:RadioButtonListID="rblSex"runat="server"><asp:ListItemText="男"Value="1"></asp:ListItem><asp:ListItemText="女"Value="0"></asp:ListItem></asp:RadioButtonList>年龄:<asp:TextBoxID="txtAge"runat="server"></asp:TextBox><br/>地址:<asp:TextBoxID="txtAddr"runat="server"></asp:TextBox><br/><asp:ButtonID="Button1"runat="server"Text="添加"onclick="Button1_Click"style="height:21px"/></div>
解决方案十一:
缺少逗号,这个是基本的语法。
解决方案十二:
又不是SQL关键字,没事加那么多[]干嘛?画蛇添足了publicvoidInsert(stringmemberName,stringsex,stringage,stringaddr){sql="INSERTINTOMember(MemberName,Sex,Age,Addr)values('"+memberName+"','"+sex+"','"+age+"','"+addr+"')";objBase.Execute(sql);}
就行了
解决方案十三:
还是不行,看来问题不是出在这些语句里了
解决方案十四:
引用12楼etilmichael的回复:
还是不行,看来问题不是出在这些语句里了
那你检查一下,要是像上面写的话,你数据库表结构字段都是字符型的,如果你如sex字段是int类型的话,这样写肯定有问题,需要去掉两端的''即可明白意思了嘛???
解决方案十五:
感觉age应该是int类型的,所以去掉两端的单引号,如果其他的如sex也是int的话,也是去掉两端的单引号。publicvoidInsert(stringmemberName,stringsex,stringage,stringaddr){sql="INSERTINTOMember(MemberName,Sex,Age,Addr)values('"+memberName+"','"+sex+"',"+age+",'"+addr+"')";objBase.Execute(sql);}
解决方案:
估计是数据类型没有匹配对!数据库字段检查下,然后Vs在Debug,这是小问题
解决方案:
检查语法问题是根本
解决方案:
现在好了,且插入数据的时候有提示“插入成功”,可是到SQL数据库查看却没有数据
解决方案:
解决方案:
引用17楼etilmichael的回复:
现在好了,且插入数据的时候有提示“插入成功”,可是到SQL数据库查看却没有数据
你是不是插入错数据库了,或是你查询数据库查看错了??检查一下objBase.Execute(sql);//如果上面提到的都没有问题,那就是这句话的问题,这儿Execute方法的正确性了???
解决方案:
好的,非常感谢!我的execute是写成了dll文件的我先检查下
解决方案:
简单说就是差逗号
解决方案:
学习!
解决方案:
debug得到了字符串,放入到sql查询器中一执行就Ok了
解决方案:
('"+memberName+"','"+sex+"','"+age+"','"+addr+"')";变量为什么要加单引号呢?
解决方案:
sql="INSERTINTOMember(MemberName,Sex,Age,Addr)values('"+memberName+"','"+sex+"',"+age+",'"+addr+"')";
调试一下,把sql的值到查询分析器中执行一下(也可以检查),那不就一清二楚了
解决方案:
该回复于2012-02-10 09:46:20被版主删除
解决方案:
publicvoidInsert(stringmemberName,stringsex,stringage,stringaddr){sql=string.Format("INSERTINTO[Member]([MemberName],[Sex],[Age],[Addr])VALUES('{0}','{1}','{2}','{3}'",memberName,sex,age,addr);objBase.Execute(sql);}
如果变量sex、age是布尔型或数据型的,不要用单引号('{1}','{2}');
解决方案:
排除以上问题的话,是不是你的sex或者Age的数据库类型错了???Age用的Int的话就不要加单引号了。
解决方案:
publicvoidInsert(stringmemberName,stringsex,stringage,stringaddr){sql="INSERTINTO[Member]([MemberName][Sex][Age][Addr])VALUES('"+memberName+"',"+sex+","+age+",'"+addr+"')";objBase.Execute(sql);}
解决方案:
字段名之间要有逗号,lz不妨调试的时候把sql先打印出来
解决方案:
这个是sql的基本语法错误。楼主
解决方案:
没事用什么[],又不是关键字。。。。楼主要细心哦,也许问题就在一些低级错误,自己怎么也想不到,最后还忙一天!
解决方案:
(被Asp.net搞晕了!!!)不得不说,是你把ASP.NET搞晕了
解决方案:
还没解决啊
解决方案:
asp的还是.net啊,搞定了吗?
解决方案:
sql="INSERTINTO[Member]([MemberName][Sex][Age][Addr])VALUES('"+memberName+"','"+sex+"','"+age+"','"+addr+"')";objBase.Execute(sql);sql="INSERTINTO[Member]([MemberName],[Sex],[Age],[Addr])VALUES('"+memberName+"','"+sex+"','"+age+"','"+addr+"')";objBase.Execute(sql);
解决方案:
sql="INSERTINTO[Member]([MemberName],[Sex],[Age],[Addr])VALUES('@memberName','@sex','@age','@addr')";请使用sqlparameter来传递参数,以避免sql注入漏洞。要有好习惯
解决方案:
SqlCommandcmd=newSqlCommand("INSERTINTO[Member]([MemberName][Sex][Age][Addr])VALUES(@MemberName,@Sex,@Age,@Addr)");cmd.Parameters.Add(newSqlParameter("@MemberName",memberName));cmd.Parameters.Add(newSqlParameter("@Sex",sex));cmd.Parameters.Add(newSqlParameter("@Age",age));cmd.Parameters.Add(newSqlParameter("@Addr",addr));objBase.Execute(cmd);
解决方案:
sql基本语法错误。。。要仔细哦~
解决方案:
看数据库的字段类型和类的字段类型匹配不。。。
解决方案:
弱弱的问下这个是在Eclipse里面写的啊吗?为什么String的S是小写的小白提问
解决方案:
8888
解决方案:
1,先取到sql语句2,将sql语句拿到SqlServerManagementStudio中执行一把。看执行情况再说话!
解决方案:
对头对头~看数据库的字段类型和类的字段类型匹配不。。。
解决方案:
哥,你的values呢?insertintotablename(列名,列名)values(列值,列值)检查你的sex列是字符串?或者是bit类型?
解决方案:
lz你干嘛老跟sex过不去啊。。你按他的要求去做就行了嘛。。何必自创一套啊。。硬来的话你会很不爽的哦
解决方案:
字段名缺少逗号“,”INSERTINTO[Member]([MemberName],[Sex],[Age],[Addr])VALUES('"+memberName+"','"+sex+"','"+age+"','"+addr+"')";
解决方案:
可以考虑几个因素:1.字段类型的问题:如果是数字型的,就不要带引号了2.输入法问题:你的引号呀,逗号呀,确定是英文输入法再说题外话:LZ这样写SQL不怕SQL注入吗?
解决方案:
你刚入门,语法要记住。这是目前最重要的。
解决方案:
sql="INSERTINTOMember(MemberName,Sex,Age,Addr)values('"+memberName+"','"+sex+"',"+age+",'"+addr+"')";objBase.Execute(sql);只要字段类型弄对了就可以了,我想sex应该是字符型的,而age应该是数字型的。