在我敲机房的时候发现有的人对VB中sql查询语句中大的双引号的理解存在误解。
首先是说明一下,其实我想也不用说明,我想大家都知道,在VB中字符串使用双引号引起来的,然而在sql中字符串是用单引号引起来的。所以理解VB中的sql语句的关键是理解VB中字符串的作用和sql中字符串的作用。
如下面这个简单的VB中sql语句
txtsql = "select * from student_info where cardno=' " & Trim(txtCardno(0).Text) & " ' "
关于这段代码,首先这是在VB中的代码,在VB中的作用就是让它成为字符串,所以在每个连接符的前后一定要保证它是字符串,对象的text属性默认为是字符串,所以不用双引号引起。那就分解一下这句话的四个个双引号,前两个双引号是将select * from student_info where cardno='化作字符串,后两个双引号只是将最后的单引号化作字符串。最后将三个字符串链接起来赋值给txtsql
其次是说明单引号的作用。先说一下txtsql此时的值是select * from student_info where cardno=’ 1 '(1是TXTcardno(0).text的值)将此字符串放入sql中,这句话中唯一要用字符串标识的只有1,也就是TXTcardno(0).text所以才在它的两边加上双引号。上面这句sql语句更容易理解的写可以写成txtsql = “select * from student_info where cardno=” & " ’ " & Trim(txtCardno(0).Text) & " ’ "
最后说一句除了对象的text属性不加双引号意外变量也不用加双引号。