Rss & SiteMap

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

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

标题:SQL语句问题

1楼
huntkey 发表于:2011/12/15 22:07:00

Dim J As Double=e.Form.controls("textbox4").text   '原始金额
Dim Z As String =e.Form.controls("combobox1").text    '状态

Dim T As Date=Date.now()   '保存当前日期

Dim cmd As new sqlcommand
cmd.c

cmd.commandtext="insert into {Card_Set} ([新增时间],[原始金额],[状态]) values('"& T &"', '"& J &"','"& Z &"')"
cmd.ExecuteReader()
运行提示如下错误,应改是SQL表达式书写错误造成的,但是我试了很多种写法仍未成功,请高手指点一下:

 


图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看
2楼
huntkey 发表于:2011/12/15 22:14:00
补充一下,我用的是Access数据库
3楼
mr725 发表于:2011/12/16 0:08:00

Dim J As Double = CDbl(e.Form.controls("textbox4").text ) 

....

 

="insert into {Card_Set} ([新增时间],[原始金额],[状态]) values( T  &  ", " &  J  & ", " & "" & Z & "")"

[此贴子已经被作者于2011-12-16 0:11:21编辑过]
4楼
lihe60 发表于:2011/12/16 8:02:00

ACC和SQL代码唯一的区别是不是变量为日期型的表达式。

5楼
huntkey 发表于:2011/12/16 21:04:00

Dim J As Double = CDbl(e.Form.controls("textbox4").text ) 

 

cmd.commandtext="insert into {Card_Set} ([新增时间],[原始金额],[状态]) values(#"& T &"#, '"& J &"','"& Z &"')"
时间类型对了,但是Double类型还是没调对

mr725你的代码是乱得,能写清楚一下吗?

6楼
huntkey 发表于:2011/12/16 22:30:00
狐爸,帮我解决一下嘛,我都两天没找到原因了,查了很多资料都没辙,郁闷啊
7楼
yangming 发表于:2011/12/17 1:25:00

Dim J As Double=e.Form.controls("textbox4").text

 

改成:下面这样试试呢

 

Dim J As Double=e.Form.controls("textbox4").Value

 

我测试过了,就是这个问题,我现在基本上很少用text了,只有文本才用,如果其它的类型我一律用Value,因为他表示值,而text表示字符

[此贴子已经被作者于2011-12-17 1:49:32编辑过]
8楼
狐狸爸爸 发表于:2011/12/17 9:36:00

除了杨版主说的:

 

Dim J As Double=e.Form.controls("textbox4").text '原始金额

 

应该改为:

 

Dim J As Double=e.Form.controls("textbox4").Value '原始金额

 

还要注意列类型,逻辑和不需要单引号,字符需要单引号,日期要用#括起来,如果是SQL Server,日期也用单引号。

假定新增时间是日期型,原是金额是数值,状态时字符,对于Access数据源:

 

cmd.commandtext="insert into {Card_Set} ([新增时间],[原始金额],[状态]) values(#" & T & "#, " & J & ", '" & Z & "')"

 

如果是SQL SQLServer:

 

cmd.commandtext="insert into {Card_Set} ([新增时间],[原始金额],[状态]) values('" & T & "', " & J & ", '" & Z & "')"

 

不管是代码还是表达式,数据类型是一切的基础。

 

建议看看:

http://www.foxtable.com/help/topics/1580.htm

http://www.foxtable.com/help/topics/1284.htm

 

 

[此贴子已经被作者于2011-12-17 9:39:09编辑过]
9楼
huntkey 发表于:2011/12/17 15:18:00

问题解决了,谢谢各位!

我的代码还犯了一个错误,所以一直通不过

如下:

Dim J As Double=e.Form.controls("textbox4").Value '原始金额

我的一个判断语句写错了 if j="" ……

我把它改成e.Form.controls("textbox4").text=“” 就通过了

 

狐爸说的:

不管是代码还是表达式,数据类型是一切的基础。

 

真是金玉良言啊!

10楼
yangming 发表于:2011/12/17 16:21:00
以下是引用huntkey在2011-12-17 15:18:00的发言:

问题解决了,谢谢各位!

我的代码还犯了一个错误,所以一直通不过

如下:

Dim J As Double=e.Form.controls("textbox4").Value '原始金额

我的一个判断语句写错了 if j="" ……

我把它改成e.Form.controls("textbox4").text=“” 就通过了

 

狐爸说的:

不管是代码还是表达式,数据类型是一切的基础。

 

真是金玉良言啊!

你上面的代码中没看到这句"if j="" ……",我发现你还有个错误,上面定义时是大写的 J ,下面的判断中是小写的 j,  如果两外不符,我想代码也是通不过的,呵呵,所以说,,如果希望尽快的解决问题,一是贴全代码,二是上传相关的文件

共11 条记录, 每页显示 10 条, 页签: [1] [2]

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

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