无效的 SQL语句
异常详细信息: System.Data.OleDb.OleDbException: 无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。我用的是access数据库,主键是自动编号,
string sql = "delele from hyb where id=‘" + e.CommandArgument+“‘ ; --------------------编程问答-------------------- string sql = "delele from hyb where id=‘ " + e.CommandArgument+“‘ “ ; --------------------编程问答-------------------- =‘ " + e.CommandArgument+“‘ 单引号有问题吧,好像是中文模式下的. --------------------编程问答-------------------- 1. ‘ 是全角的,要用半角的
2. 最后少了一个双引号
当然,如果是自动编号,就不应该用引号
string sql = "delele from hyb where id=" + e.CommandArgument ; --------------------编程问答-------------------- string sql = "delele from hyb where id=" + e.CommandArgument ;
这样就可以了! --------------------编程问答-------------------- 整型前后不能加单引号,这样:
--------------------编程问答-------------------- jetsql
string sql = "delele from hyb where id=" + e.CommandArgument;
delete * from .. --------------------编程问答-------------------- 另外你的语句里'是全角的.
如果你的id是数字类型的.
string sql = "delele * from hyb where id=" + e.CommandArgument;
或者
string sql = "delele * from hyb where id='" + e.CommandArgument + "'";
都是可以的.
--------------------编程问答-------------------- delele改为delete 单词写错了···· --------------------编程问答-------------------- 数字类型 用字串定界符 ' ' 是会隐式转换的.
所以 delete * from tb where id='5'
和
delete * from tb where id=5
没有区别
但是如果id是文本类型的(含有不可转换为数字的值),那么必须使用字串定界符. --------------------编程问答-------------------- 看看你的e.CommandArgument是否有值。 --------------------编程问答-------------------- string sql = "delele from hyb where id=" + e.CommandArgument ; --------------------编程问答-------------------- 汗~~ --------------------编程问答-------------------- delete 不是delele 整型字段不加引号 --------------------编程问答-------------------- 说了单词写错了···怎么还还搞定咧··· --------------------编程问答--------------------
---> delete * from ????
这也行?
--------------------编程问答-------------------- "delele from hyb where id=" + e.CommandArgument --------------------编程问答-------------------- tds__609
近世进士尽是近视⊙-⊙
等 级:
发表于:2008-01-29 13:18:2415楼 得分:0
---> delete * from ????
这也行?
----------------------
标准jetsql语法
DELETE [表.*]
FROM 表
WHERE标准
当然,不加*也是可以的. 印像中前些年用时,早期的不行.
t-sql不能加* --------------------编程问答-------------------- string sql = "delele from hyb where id=" + e.CommandArgument+“ ; --------------------编程问答-------------------- 谢谢大家的发表解决了,非常感谢。
--------------------编程问答-------------------- string sql = "delele from hyb where id='"+e.CommandArgument+"'";
--------------------编程问答-------------------- 整形加不加单引号都可以. --------------------编程问答-------------------- 汗 --------------------编程问答-------------------- 晕 --------------------编程问答-------------------- 我是彻底的无语啊...... --------------------编程问答-------------------- string sql = "delele from hyb where id="+e.CommandArgument+“ --------------------编程问答-------------------- delete写错了 --------------------编程问答-------------------- access数据库整型不要加单引号,改成delele from hyb where id=" + e.CommandArgument就可以了.sqlserver oracle加不加都可以. --------------------编程问答-------------------- 我也都跟着lz把delete写错了 --------------------编程问答-------------------- 只是半角全角的问题,切换到英文输入法状态下重写一遍就OK了 --------------------编程问答-------------------- 1. ‘ 是全角的,要用半角的
2. 最后少了一个双引号
当然,如果是自动编号,就不应该用引号
string sql = "delele from hyb where id=" + e.CommandArgumen --------------------编程问答-------------------- string sql = "delele from hyb where id=‘ " + e.CommandArgument+“‘ ; 单词错,单引号,双引号错 --------------------编程问答-------------------- 语句本身有问题!
如果是access
--------------------编程问答-------------------- string sql="delete from hyb where id='"+e.CommandArgument+"'"; --------------------编程问答-------------------- string sql = "delele from [hyb] where [id]='"+ e.CommandArgument +"'; --------------------编程问答-------------------- string sql = "delele from hyb where id=" + e.CommandArgument;
delete * from hyb where id= "+ e.CommandArgument+"
//如果编号是不用单引号的,楼主少了个*号
delete hyb where id="+ e.CommandArgument+"
//这是SQl的语法
OR
string sql = "delele from hyb where id='" + e.CommandArgument + "'";
补充:.NET技术 , ASP.NET