Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:[讨论] 关于双引号和单引号,不太明白!

1楼
wcs 发表于:2009/7/2 23:10:00
我看了帮助中的这样两段代码:

第一个:
Total = DataTables("订单").Compute("Sum(数量)", "[客户] = '" & Customer & "'")
上述代码中,Filter参数分成了三部分,各部分用运算符&连接起来:
"[客户] = '" & Customer & "'"



第二个:
If e.DataTableName = "订单" AndAlso e.User.Name = "录入员" Then
    Dim StartDate As Date = Date.Today().AddDays(-10)
    e.SelectString = "Select * From [订单] Where [日期] > #" & StartDate & "#"
End If


第一个中,筛选条件中的参数分三段,这能理解。
第二个中,selectstring 中为什么没有出现单引号,我就不能理解了!

他们有什么不同吗?为什么上面的要有‘’,下面的不能有‘’?? 
Customer和StartDate都是自己定义的变量,为什么使用起来就不同了啊?

[此贴子已经被作者于2009-7-2 23:10:38编辑过]
2楼
狐狸爸爸 发表于:2009/7/2 23:23:00
SelectString中间没有字符,要单引号干什么?

表达式中,字符用单引号,日期用符号#
3楼
wcs 发表于:2009/7/2 23:33:00
" & Customer & "  是字符

" & StartDate & "  不是字符

为什么?他们有什么不同吗?如何理解?

Customer和StartDate都是自己定义的变量,为什么上面的是字符,下面的不是字符了?
4楼
shaof 发表于:2009/7/2 23:52:00
很显然,第一段代码是筛选客户,客户是字符。
第二段是加载符合条件的日期,日期当然不能用单引号,只能用#号。
5楼
wcs 发表于:2009/7/3 8:24:00

这也是帮助中的一段:

If e.name = "成绩" Then
    e.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & e.ProjectPath &
"成绩数据.mdb;Persist Security Info=False"

End
if



" & e.ProjectPath & " 这不是日期,它只是一串字符,表示地址。
为什么它没有用‘’呢?

[此贴子已经被作者于2009-7-3 8:25:51编辑过]
6楼
狐狸爸爸 发表于:2009/7/3 8:29:00

这又不是表达式,这是一个普通的字符串。

表达式本身是一个字符,用双引号,同时表达式是一个计算公式,会包括有数值、日期、字符等值,其中字符用单引号,日期用#,数值直接使用。

[此贴子已经被作者于2009-7-3 8:30:26编辑过]
7楼
易狐 发表于:2009/7/3 8:43:00

这样对比起来看应该更明了:

Total = DataTables("订单").Compute("Sum(数量)", "[客户] = '" & Customer & "'")
将条件表达式用实例数据表示:
Total = DataTables("订单").Compute("Sum(数量)", [客户] = '张三')

8楼
shxiaoya 发表于:2009/7/3 8:50:00
Total = DataTables("订单").Compute("Sum(数量)", "[客户] = '" & Customer & "'")

这样标注一下(红色部分)你应该能看明白吧
[此贴子已经被作者于2009-7-3 8:54:06编辑过]
9楼
wcs 发表于:2009/7/3 8:54:00
明白了,表达式里会出现‘’

因为表达式是一个计算公式,里面有数值、日期、字符等值,字符要用‘’,日期要用##,数字直接使用

因为‘’里面的东西还是一个字符,所以里面还要用“”  


而这两段  e.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & e.ProjectPath & "成绩数据.mdb;Persist Security Info=False"

e.SelectString = "Select * From [订单] Where [日期] > #" & StartDate & "#"

它们不是表达式,只是一个字符串

表达式在Filter用得较多。
10楼
shxiaoya 发表于:2009/7/3 8:55:00
在sql里,日期也要用'而不是#
共11 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04395 s, 2 queries.