看似容易,实际难

mickwang 2001-12-10 09:18:23
删除access数据库中的纪录
dim j as integer
....."delete from tablename where id='"+j+"' "
id为 自动编号
运行后提示出错,类型不匹配
请问如何写才是。

...全文
106 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
junglerover 2001-12-11
  • 打赏
  • 举报
回复
楼上说的显然是非常错误的。
首先,恐怕没有什么SQL引擎会报“类型不匹配”的错误出来,
这个错误显然是VB中的错误

其次,类似
Delete form TableName where id='1234'
的语句根本就没有错误,虽然你可以说它不是一个好的SQL语句
但至少在SQL SERVER,这个语句完全可以执行

这个真正的问题在于“+”号上。对于字符串连接,“+”号与
“&”号的区别也就在于“+”号不会做自动类型转换。所以你把
一个整数与字符串用“+”号连接,会报类型不匹配;用“&”则
不会。所以,真正解决问题的写法为
....."delete from tablename where id=" & j
或者
....."delete from tablename where id=" + cstr(j)
都可以。
leonkim 2001-12-11
  • 打赏
  • 举报
回复
dim j as integer
....."delete from tablename where id='"+j+"' "
我想和加不加单引号没有关系,因为我试过,sql语法中数值也可以用''引起来。
你可以改成"delete from tablename where id='" & j & "'"
试试,用"+"号有数值运算的含义,不如用&,连接字串,在连接之前自动转换成字串。
fraser01 2001-12-11
  • 打赏
  • 举报
回复
Delete from tablename where id='" + j + "'"
翻译成SQL语句其实是:Delete form TableName where id='1234'
这句语句会出现类型不匹配的错误。
因此要把单引号取消,改成:
strSQL="Delete form TableName where id=" + j
cn.Execute strSQL
szlili2013 2001-12-11
  • 打赏
  • 举报
回复
....."delete from tablename where id=" & cstr(j)
whose 2001-12-11
  • 打赏
  • 举报
回复
....."delete from tablename where id=" & j
id 是整型數
有哥 2001-12-10
  • 打赏
  • 举报
回复
楼上没人说错
tipstudio_zsp 2001-12-10
  • 打赏
  • 举报
回复
+和&的道理是一样的
关键是id是数值型
不用加单引号
其实是很简单
sonicdater 2001-12-10
  • 打赏
  • 举报
回复
delete from tablename where id=" & j
crystal_heart 2001-12-10
  • 打赏
  • 举报
回复
....."delete from tablename where id="+j

自动编号为整数,不是字符串。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧