送分100分:有时在EXCUTESQL的SQL语句中必须用CSTR,什么时候必须用CSTR. 有时在EXCUTESQL的SQL语句中必须用CSTR,什么时候必须用CSTR,什么时候可以不用CSTR. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请看看以下的语句:sql = "Insert into sdjl ([用户编号],[用户姓名],[用户类型],[电价(元/kWh)],[购电量(kWh)],[调剂电量(kWh)],[购电日期],[售电员],类型,线损比例) values (" + Trim(Text2.Text) + ",'" + Trim(Text1.Text) + "','" + DataCombo1.Text + "'," + CStr(Text10) + ",0,0,#" + CStr(sj(NowDate)) + "#," + CStr(userID) + ",1," + CStr(Val(Trim(xiansun.Text))) + ")"问题如下:1、什么情况下必须用"#" + CStr(sj(NowDate)) + "#"这种 两个井号的 形式2、什么情况下必须用"'" + Trim(Text1.Text) + "'" 这种两个 单引号 ' 的形式。3、什么情况下必须用 CStr(userID) 这种 CSTR 的形式。4、为什么Trim(Text1.Text) + "','" + DataCombo1.Text 这几个不用加CSTR。 cstr 把Variant 改成 string。1, 日期可加2, char type3, 看上面4, 本来就是string CStr都不需要数据库里面 日期型用# , 字符型用' ,数字型什么也不用 CStr都不需要数据库里面 日期型用# , 字符型用' ,数字型什么也不用 sql = ""sql = sql & " Insert into sdjl ( " & vbCrLfsql = sql & " [用户编号] " & vbCrLfsql = sql & " , [用户姓名] " & vbCrLfsql = sql & " , [用户类型] " & vbCrLfsql = sql & " , [电价(元/kWh)] " & vbCrLfsql = sql & " , [购电量(kWh)] " & vbCrLfsql = sql & " , [调剂电量(kWh)] " & vbCrLfsql = sql & " , [购电日期] " & vbCrLfsql = sql & " , [售电员] " & vbCrLfsql = sql & " , 类型 " & vbCrLfsql = sql & " , 线损比例 " & vbCrLfsql = sql & " ) " & vbCrLfsql = sql & " values ( " & vbCrLfsql = sql & " " + Trim(Text2.Text) + " " & vbCrLf '数据库中[用户编号]这个字段是数字类型,不需要加sql = sql & " , '" + Trim(Text1.Text) + "' " & vbCrLf '数据库中[用户姓名]这个字段是字符类型,需要加''sql = sql & " , '" + DataCombo1.Text + "' " & vbCrLfsql = sql & " , " + CStr(Text10) + " " & vbCrLfsql = sql & " , 0 " & vbCrLfsql = sql & " , 0 " & vbCrLfsql = sql & " , #" + CStr(sj(NowDate)) + "# " & vbCrLf '数据库中[购电日期]这个字段是日期类型,需要加##(指access数据库,其他数据库不同)sql = sql & " , " + CStr(userID) + " " & vbCrLfsql = sql & " , 1 " & vbCrLfsql = sql & " , " + CStr(Val(Trim(xiansun.Text))) + " " & vbCrLfsql = sql & " ) " cstr在lz这里应该去掉也可以,lz可以去掉试验一下,看数据库中数据是否有什么不同 请问& vbCrLf 有什么用。 CSTR是轉換為字符串的函數。不一定要用這個函數的。 回车换行看这个代码Private Sub Command1_Click() Dim strT As String strT = "" strT = strT & " select id " & vbCrLf strT = strT & " , my_name " & vbCrLf strT = strT & " , tl " & vbCrLf strT = strT & " , ph " & vbCrLf strT = strT & " from my_table " & vbCrLf strT = strT & " where id = '001' " & vbCrLf Debug.Print strT End Sub结果 select id , my_name , tl , ph from my_table where id = '001' 无论是在vb代码,还是peint出来,看着逻辑都清楚 http://download.csdn.net/source/1644211 操作符 + 根据两边操作数的不同,可以解释为加法、也可以解释为连接。而 VB 又存在自动类型转换,当一边操作数为数值时(比如 userID),会试图将另一边转化为数值做加法,如果不是数值型字符串就会出类型不匹配的错误。为了避免发生歧义,连接一定要用 & 操作符。自己对比下面几个表达式Debug.Print "1" & 3Debug.Print "A" & 3Debug.Print "1" + 3Debug.Print "A" + 3 CStr(Text10),没有必要再转换,本来就是文本 请教:如何使ACTIVESIZER控件在运行时改变列或行的大小? 怎么实现WMP中的控件与工具箱中的有些空间相连? 有关窗体按钮问题 急!!!!!!如何判斷到了某一時刻 我在VB中向ASP传递参数,可以吗? 字段和变量的问题(在线等,立即给分) 高手帮帮忙:水晶报表调用rpt报表文件时报表数据刷新的问题 我自已做一个文本编辑器(不用TextBox,RichText,只用PictureBox),应该怎样做? 校际软件设计大赛,做什么软件好!UP者有分! 如何让窗体右上栏的“最大化”按钮无效? VSFlexGrid控件合并问题 vb + sqlserver2000 解决异地数据同步的问题??
sql = "Insert into sdjl ([用户编号],[用户姓名],[用户类型],[电价(元/kWh)],[购电量(kWh)],[调剂电量(kWh)],[购电日期],[售电员],类型,线损比例) values (" + Trim(Text2.Text) + ",'" + Trim(Text1.Text) + "','" + DataCombo1.Text + "'," + CStr(Text10) + ",0,0,#" + CStr(sj(NowDate)) + "#," + CStr(userID) + ",1," + CStr(Val(Trim(xiansun.Text))) + ")"问题如下:
1、什么情况下必须用"#" + CStr(sj(NowDate)) + "#"这种 两个井号的 形式
2、什么情况下必须用"'" + Trim(Text1.Text) + "'" 这种两个 单引号 ' 的形式。
3、什么情况下必须用 CStr(userID) 这种 CSTR 的形式。
4、为什么Trim(Text1.Text) + "','" + DataCombo1.Text 这几个不用加CSTR。
1, 日期可加
2, char type
3, 看上面
4, 本来就是string
sql = sql & " Insert into sdjl ( " & vbCrLf
sql = sql & " [用户编号] " & vbCrLf
sql = sql & " , [用户姓名] " & vbCrLf
sql = sql & " , [用户类型] " & vbCrLf
sql = sql & " , [电价(元/kWh)] " & vbCrLf
sql = sql & " , [购电量(kWh)] " & vbCrLf
sql = sql & " , [调剂电量(kWh)] " & vbCrLf
sql = sql & " , [购电日期] " & vbCrLf
sql = sql & " , [售电员] " & vbCrLf
sql = sql & " , 类型 " & vbCrLf
sql = sql & " , 线损比例 " & vbCrLf
sql = sql & " ) " & vbCrLf
sql = sql & " values ( " & vbCrLf
sql = sql & " " + Trim(Text2.Text) + " " & vbCrLf '数据库中[用户编号]这个字段是数字类型,不需要加
sql = sql & " , '" + Trim(Text1.Text) + "' " & vbCrLf '数据库中[用户姓名]这个字段是字符类型,需要加''
sql = sql & " , '" + DataCombo1.Text + "' " & vbCrLf
sql = sql & " , " + CStr(Text10) + " " & vbCrLf
sql = sql & " , 0 " & vbCrLf
sql = sql & " , 0 " & vbCrLf
sql = sql & " , #" + CStr(sj(NowDate)) + "# " & vbCrLf '数据库中[购电日期]这个字段是日期类型,需要加##(指access数据库,其他数据库不同)
sql = sql & " , " + CStr(userID) + " " & vbCrLf
sql = sql & " , 1 " & vbCrLf
sql = sql & " , " + CStr(Val(Trim(xiansun.Text))) + " " & vbCrLf
sql = sql & " ) "
请问& vbCrLf 有什么用。
回车换行看这个代码
Private Sub Command1_Click()
Dim strT As String
strT = ""
strT = strT & " select id " & vbCrLf
strT = strT & " , my_name " & vbCrLf
strT = strT & " , tl " & vbCrLf
strT = strT & " , ph " & vbCrLf
strT = strT & " from my_table " & vbCrLf
strT = strT & " where id = '001' " & vbCrLf Debug.Print strT
End Sub结果
select id
, my_name
, tl
, ph
from my_table
where id = '001' 无论是在vb代码,还是peint出来,看着逻辑都清楚
为了避免发生歧义,连接一定要用 & 操作符。自己对比下面几个表达式
Debug.Print "1" & 3
Debug.Print "A" & 3
Debug.Print "1" + 3
Debug.Print "A" + 3