这篇博客接着上一篇博客进行撰写,这次主要说一下 VB中的一个查询语句的故事。
因为是第一次用VB和数据库进行交互,所以对VB怎么将SQL语句传送到SQL Server 中很是好奇,然后直到看到类似这样的代码,并且在和老师交流代码的时候,也产生了一些分歧,导致我写了今天的这篇博客。
下边先看看代码例子:
txtSQL = "select * from course_Info where course_No='" & Trim(txtCourseno.Text) & "'" Set mrcc = ExecuteSQL(txtSQL, MsgText) If mrcc.EOF = False Then MsgBox "课程号重复,请重新输入", vbOKOnlk + vbExclamation, "警告" mrcc.Close
上边代码意思是 将一个SQL语句传给 变量 txtSQL ,再通过 ExecuteSQL 这个调用过程 返回一个数据集合,从而达到和数据库进行交互的目的。
1. txtSQL 这个变量中到底是一个字符串还是多个字符串?
2. txtSQL 这个变量中 & 符号到底是什么意思?
3. 在VB中 对于字符串中的变量如何将其值拿出来?
问题一:txtSQL 这个变量中到底是一个字符串还是多个字符串?
我最开始的观点是: txtSQL 中是一个字符串,我的判断依据是 整个字符串最外边由一对双引号作为定界符,所以我的观点是一个字符串。
老师的观点是:txtSQL是由 三个字符串拼接而成,而拼接的关键就是 & 符号。
后来经过我上网查询资料,我大概明白了 & 符号的作用,然后通过尝试了几个连接字符串的例子明白了 & 符号作为 强连接符的作用,和 & 符号在VB中的其他作用。(详情请观看我的上一篇博客)
问题二:txtSQL 这个变量中 & 符号到底是什么意思?
我的观点是: & 符号 能将字符串中的变量中的值拿出来
老师的观点: & 符号在本行语句中就是连接用的,没有其他的意思。
后来我经过编程一个小程序印证了老师的观点是正确的并且我的观点是错误的。。。
证明过程:
Dim i As String, j As String i = "靖凡" j = "无所畏惧" Print i & j ’输出: 靖凡无所畏惧 Print i & "j" ’输出: 靖凡j Print i & " & j & " '输出: 靖凡 & j & Print i & " '" & j & " ' " 输出 靖凡 ’无所畏惧 ' End Sub
1. 经过以上判断,我们可以得知 & 强行将 两边的数据连接了起来,就像最后一个输出语句,将 i 和 “ ' ” 连接, 将 “ ' ” 和 j 进行连接,将 j 和 " ' " 进行连接,这四个字符串进行相连,得出一个总的字符串。
2. 由此我还可以得出一个结论就是 VB中对于代码的读取和执行 也是从左到右依次进行读取的。
问题三:在VB中 对于字符串中的变量如何将其值拿出来?
对于这个问题,我想了一下还是因为我自身的原因,因为我之前学习过 Visual Fox (简称 VF ,数据库开发软件),其中就有一个知识点就是说将字符串中的变量拿出来需要使用 & 符号才能拿出来,正是因为这样,导致我和VB搞混了,到这有了第三个问题,其实VB不存在从字符串中变量取值的问题,因为有连接符 & 我们可以连接组成一条语句,所以不会出现上述问题。
例子:
将 VB变量 X中的字符串显示出来
Dim i As String, j As String i = "靖凡" Print i
VF 中字符型数据"姓名",要将其转换为字段名:姓名,则使用宏替换(&)。
x="姓名" ?&x
最后希望大家能给我这篇文章点个赞,我也和希望读者们在下方评论区留言,咱们一起共同进步成长。