以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]UPDATE (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2675)
|
-- 作者:狐哥
-- 发布时间:2009/5/4 9:49:00
-- [求助]UPDATE
各位老师,帮我看看如下代码哪错了:
Dim drs As List(Of DataRow) drs = DataTables("销帐明细").Select("[收付编号] > \'\'") For Each dr As dataRow In drs Dim cmd As New SQLCommand cmd.CommandText = "UPDATE {费用管理} SET 已收付金额 = \'" & dr("已收付金额") & "\',收付编号 = \'" & dr("收付编号") & "\',销帐人 = \'" & dr("销帐人") & "\',余额 = \'" & dr("余额") & "\',销余额 = \'" & dr("销余额") & "\',余额编号 = \'" & dr("余额编号") & "\' WHERE 费用关联 = \'" & dr("费用关联") & "\' and 费用名称 = \'" & dr("费用名称") & "\'" cmd.ExecuteNonQuery() Next DataTables("销帐明细").DataRows.Clear()
此主题相关图片如下:片段.jpg
|
-- 作者:狐狸爸爸
-- 发布时间:2009/5/4 9:55:00
--
不是什么都用单引号的,日期用#,数字啥也不用
[此贴子已经被作者于2009-5-4 9:58:25编辑过]
|
-- 作者:狐哥
-- 发布时间:2009/5/4 10:24:00
--
TKS,我正试试,呵呵
|
-- 作者:狐哥
-- 发布时间:2009/5/4 10:34:00
--
cmd.CommandText = "UPDATE {费用管理} SET 已收付金额 = dr("已收付金额") ,收付编号 = dr("收付编号") ,销帐人 = dr("销帐人") ,余额 = dr("余额") ,销余额 = dr("销余额"),余额编号 = dr("余额编号") WHERE 费用关联 = dr("费用关联") and 费用名称 = dr("费用名称")"
狐爸,这样改也不对呀!麻烦指点一下.
|
-- 作者:狐哥
-- 发布时间:2009/5/4 10:43:00
--
cmd.CommandText = "UPDATE {费用管理} SET 已收付金额 = " & dr("已收付金额") & ",收付编号 = " & dr("收付编号") & ",销帐人 = " & dr("销帐人") & ",余额 = " & dr("余额") & ",销余额 = " & dr("销余额") & ",余额编号 = " & dr("余额编号") & " WHERE 费用关联 = " & dr("费用关联") & " and 费用名称 = " & dr("费用名称") & "" cmd.ExecuteNonQuery()
去掉单引号还是不行
|
-- 作者:狐狸爸爸
-- 发布时间:2009/5/4 10:48:00
--
呵呵,如果玩不转SQL,就用FoxTable的简单方法。
Dim drs As List(Of DataRow) drs = DataTables("销帐明细").Select("[收付编号] > \'\'") For Each dr As dataRow In drs dr.Load()
Next
DataRow的Load方法具备保存和刷新的双重功能。
|
-- 作者:cpayinyuan
-- 发布时间:2009/5/4 10:50:00
--
以下是引用狐哥在2009-5-4 10:43:00的发言: cmd.CommandText = "UPDATE {费用管理} SET 已收付金额 = " & dr("已收付金额") & ",收付编号 = " & dr("收付编号") & ",销帐人 = " & dr("销帐人") & ",余额 = " & dr("余额") & ",销余额 = " & dr("销余额") & ",余额编号 = " & dr("余额编号") & " WHERE 费用关联 = " & dr("费用关联") & " and 费用名称 = " & dr("费用名称") & "" cmd.ExecuteNonQuery()
去掉单引号还是不行
你把字符型也去掉单引号了,当然不行。 贺老师前面已经讲得很明白了,字符型用单引号,数字型不用。
|
-- 作者:狐哥
-- 发布时间:2009/5/4 10:57:00
--
还是放个文件上来再求教吧,因是填充的问题,且 费用管理 表是在后台,所以才用到SQL的,如不在后台我直接用FILL就好了.
|
-- 作者:狐哥
-- 发布时间:2009/5/4 11:00:00
--
以下是引用cpayinyuan在2009-5-4 10:50:00的发言:
你把字符型也去掉单引号了,当然不行。 贺老师前面已经讲得很明白了,字符型用单引号,数字型不用。
非常感谢,原来还有这么一说. 字符型要用单引号,数字型不用,日期用#,呵呵,明白了.
|
-- 作者:菜鸟foxtable
-- 发布时间:2009/5/4 11:02:00
--
以下是引用狐哥在2009-5-4 10:43:00的发言: cmd.CommandText = "UPDATE {费用管理} SET 已收付金额 = " & dr("已收付金额") & ",收付编号 = " & dr("收付编号") & ",销帐人 = " & dr("销帐人") & ",余额 = " & dr("余额") & ",销余额 = " & dr("销余额") & ",余额编号 = " & dr("余额编号") & " WHERE 费用关联 = " & dr("费用关联") & " and 费用名称 = " & dr("费用名称") & "" cmd.ExecuteNonQuery()
去掉单引号还是不行
如果是字符型用 \' " & XXX & " \' 如果是数值型用 XXX 如果是日期型用 # " & XXX & " #
以上自己试验下,不保证正确...
|