谢谢各位高手了,小弟刚学,请知道一下了
vb中写SQL语言是老是被 单引号和双引号搞的晕头转向,还有字符串连接时用的+、&、%等
符号,麻烦各位讲讲可以吗?
如下面两句:
1、Adodc4.RecordSource="select * from 稿费发放表 where 刊物名称 like '" + text
1.text + "'%'and 年='" + text2.text + "'%' and 期='" + text3.text + "'%'"这里的"+"是不是换成"&"更好一点啊? 然后“刊物名称”后面的like和“年”后面的“=”又有什么区别啊?这里的%是表示什么的?2、objRs.Open "select*from 判断题 where 章节="& Text7.Text我想查找表“判断题”中字段“章节”=text7的值,如果在Text7中输入数字运行正确,如果输入文字后就报错了说:列名‘大’无效(‘大’是我输入的文字),把数据库中的章节数据类型改成varchar后还是一样,应该怎么写呢?是不是输数字和输字符串写法不一样呢?
谢谢各位帮忙了!

解决方案 »

  1.   

    where条件语句中,凡字段定义为文本的,则该文本两端用单引号标识,例:
    Adodc1.RecordSource = "SELECT * FROM mdlk_sj where 销售='N' order by 码单号"
    这里销售=后面的N前后各有一个单引号.
    字段定义为数字类型的,则无需单引号.
    字段定义为日期类型,则用#号代替单引号.
    另外VB中单引号用作注释,例:
    Adodc1.Refresh'对查询更新
    这单引号后的文字说明单引号左侧语言的用途.下句纠正了一些错误,字符连接在无异议时可用"+"号或"&"号:
    Adodc4.RecordSource="select * from 稿费发放表 where 刊物名称 like '" + text
    1.text + "%' and 年='" + text2.text + "' and 期='" + text3.text + "'"下句中“章节”字段为数值字段:
    objRs.Open "select*from 判断题 where 章节=" & Text7.Text
      

  2.   

    太感谢您了!
    那么如果"章节"字段为字符串型的时候呢?是不是应该写成:
    objRs.Open "select*from 判断题 where 章节=" & ‘Text7.Text’
    还是objRs.Open "select*from 判断题 where 章节= '"& Text7.Text&"'"
    但好像运行起来还是不对啊,高手再帮菜鸟一下吧!谢谢了
      

  3.   

    objRs.Open "select*from 判断题 where 章节= '" & Text7.Text & "'"
      

  4.   

    or:
    objRs.Open "select*from 判断题 where 章节= '" & Trim(Text7.Text) & "'"
      

  5.   

    真的很感谢zdingyun() ,这个问题困扰我很久,问了好多地方都没弄清楚,今天总算彻底清楚了,随便发一下我对vb中单双引号以及&连接符号的一点认识,请高手指正:
    一、双引号的用法        在VB中有以下规定,两个双引号才能显示出一个双引号,譬如:        dim a as string        a="m"           '  a为m不过like语句中的%还是不是很了解,还请知道的高手补上,我刚接触编程一两个星期,有什么地方说的不好请大家指正啊        a="""m"""       '  a为"m"                        'a=""m"" 是错误的        a="'m'"         '  a为 'm'二、双引号与连接符号的用法        & 一般是用来连接两个字符串,譬如:        dim a as string        a="m"  "!"                      '  a 为m        a="""" & "m" & """"             '  a 为"m" ,等同于 a="""m"""        分析一下,第一部分四个引号,等同与一对双引号里边放了一个待显示的双引号(vb两个双引号等同于一个双引号),等同于""",&起连接作用,第二部分为"m",第三部分又是等同的一个单引号,为""",三部分连接起来就"m"。        a="'" & "m" & "'"               '   a 为'm'        分析可以同上。        再举个例子:        private sub form_load()          dim a as string            dim b as string          a="4正确"            b="2+2=" & a                 'b显示为  2+2=4正确            b="2+2=" & a & ""            '同上        end sub        必须注意一点,&是连接符号,你可以根据&看左右两部分是否是两个字符串,配对后,就不会出现错误。三、单引号的用法        其实单引号是sql中经常用到的,由于vb中经常要用到sql,所以看起来容易混淆。        在连接数据库时,经常用到的一句如下:        rs.open "select * from student where name='" & text1.text & "'",conn,1,3        在sql中,赋值一般用单引号,而vb中是双引号。在上句咱们也可以看成三部分,第一部分"select * from student where name='",第二部分text1.text,,第三部分"'",三个字符串用&连接起来,特别注意第三部分必须加上。通过&分割来看,就比较容易了。