我用VB.NET写了一个SQL语句,结果提示”字符串的语法错误 在查询表达式 '学号='0840440101' “

我写的SQL语句是
mysql = "select * from 成绩单 where 学号='" & _
"" & ComboBox1.Text & "' and 课程号='" & _
"" & ComboBox2.Text & "' and 分数<> "" "
我想象的结果是学号=‘0840450401’ and 课程号='0002' and 分数<>"",可是错误提示却说”字符串的语法错误 在查询表达式 '学号='0840440101' and 课程号='0002' and 分数<>"' 中。“。这是为什么呢?那位能写出正确的语句呢?还是其他的原因导致这个问题?

分数<>"',这个地方错了。
因为你的分数应该是个数字型的字段吧?而这个不等于显然是字符串的比较方式。
所以这个地方要改成分数 IS NOT NULL或者ISNULL(分数,0) <> 0

mysql = "select * from 成绩单 where 学号='" & _
"" & ComboBox1.Text & "' and 课程号='" & _
"" & ComboBox2.Text & "' and ISNULL(分数,0)<> 0 "
这个ISNULL是SQLSERVER的语法,表示空则为什么值追问

谢谢您的热情回答。但是分数是一个文本型的字段。您能再看看吗?

追答

如果不是这个错误,那么还是建议您跟踪一下吧,看看这个mysql字符串取值之后的最终结果是什么,然后把这个最终的mysql串拿出来在数据库后台执行一下看看就知道错误了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-03
webform
在这句话下面写上
response.write mysql
response.end()

winform
在这句话下面写上
console.write mysql
exit sub

或者直接断点DEBUG吧。。

看看输出语句是哪错了,是不是绑定控件了。
第2个回答  2011-05-04
二者用的数据库是否是同一台机的同一个数据库,
这个是要搞清楚的。
如果不是同一个数据库,记录就有可能不同啦。
相似回答