VB中双引号问题请教高手

来源:百度知道 编辑:UC知道 时间:2024/07/02 02:03:50
Private Sub addorg_Click() '菜单增加组'***************************************************
Call open_close(resorg)
resorg.Open "select * from org order by id", con, adOpenDynamic, adLockOptimistic
Set Combo2.DataSource = resorg
resorg.MoveFirst
resorg.Find "id='new'"
If resorg.EOF = True And resorg.BOF = True Then
Set nod1 = Form1.TreeView1.Nodes.add("root", tvwChild, "r" & "new", "新建文件夹", 2)

resorg.AddNew
resorg(0).Value = "new"
resorg(1).Value = "新建文件夹"
resorg.Update
Exit Sub
End If

Dim i As Integer
i = 1
While True
resorg.MoveFirst
resorg.Find "id='new" & i & "'"
If resorg.EOF = True Or resorg.BOF =

resorg(0).Value = "new" & i
'为什么这里给"i"加""不行

"new" & i : "new"是字符串,i是变量,这个语句是一个简化语句,实际也可以这样:"new" & i & "",语句实际是一个字符串的后面增加一个变量的值,例如i=2,这个语句的结果是new2。
问题出现了,你不是说new是字符串,而i是整形变量,为什么能够这样处理呢?问的好!
在VB中,一般字符串和数字连接时,需要将数字转换成为字符串,例如"new" & i 应该是:"new" & Cstr(i),但是由于你的数据库字段本身就是字符串字段,VB经过判断,智能地进行了转换(况且前面的new已经是字符串了)。

解决了上面的疑问,下面的问题是不是也清楚了?
resorg(1).Value = "新建文件夹(" & i & ")"
'请问这里的i 为什么不能去掉双引号它不是已经是整数了吗?

在VB中很多地方存在智能判断的,当然为了查询清楚明了,很多编程者用显式语句,例如:"new" & Cstr(i) & ""。

resorg(0).Value = "new" & i
这个i不能加,因为加了就会得到 字符串 newi了..变成了字符串叠加,而不想得到的new1, new2, new3等等的效果了.

resorg(1).Value = "新建文件夹(" & i & ")"
这里面的i仍然不能加的,你要看清楚,不要看错了,这句话是:

字符串"新建文件夹("
连接
变量i的值
再连接
字符串")"

一共是2对双引号, 是用来引住前后2个