以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  update 语句在sql测试窗口不执行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26346)

--  作者:lrj03
--  发布时间:2012/12/1 2:20:00
--  update 语句在sql测试窗口不执行

  在测试窗口中,测试语句

 

    UPDATE {材料入库单} SET 金额=100 WHERE 入库单编号=\'20121101\'

    

   语句出现错误,错误代码:

.NET Framework 版本:2.0.50727.4963
Foxtable 版本:2012.11.21.1
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   在 Foxtable.SQLCommand.ExecuteNonQuery()

这是咋回事?请教update语句要怎样改?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试update.rar

[此贴子已经被作者于2012-12-1 9:57:26编辑过]

--  作者:lihe60
--  发布时间:2012/12/1 8:25:00
--  

上传个附件。


--  作者:lin_hailun
--  发布时间:2012/12/1 8:41:00
--  
 很明显是你的字段名写错了,对比一下。
--  作者:lrj03
--  发布时间:2012/12/1 10:02:00
--  
附件上传了,直接做在控件代码里了,update不执行,检查过了表名,字段名,试过大小写,检查了符号的全半角,还是说.net framework丢失了什么东东
[此贴子已经被作者于2012-12-1 10:02:58编辑过]

--  作者:lin_hailun
--  发布时间:2012/12/1 10:25:00
--  
 我测试了,没有报错,而且执行了。

 执行的sql语句,实在你的后台数据库里执行的,并不会表现在你看到的表里,你需要重新加载数据才可以看到。比如重新打开项目。

--  作者:lihe60
--  发布时间:2012/12/1 11:29:00
--  
我执行的,也没有提示。
--  作者:lrj03
--  发布时间:2012/12/2 1:11:00
--  
明白了,原来已经执行,代码加datatable(“表名”).load才可以看到,谢谢了
--  作者:zerov
--  发布时间:2012/12/2 8:46:00
--  

高手云集呀


--  作者:binghe
--  发布时间:2012/12/3 2:16:00
--  
以下是引用lrj03在2012-12-2 1:11:00的发言:
明白了,原来已经执行,代码加datatable(“表名”).load才可以看到,谢谢了


能写详细一点吗?虽然我现在还没学到这一块。但是可以留着备用。以防以后遇到。

--  作者:狐狸爸爸
--  发布时间:2012/12/3 8:31:00
--  

提醒一下,执行下面的语句自后:

 

UPDATE {材料入库单} SET 金额=100 WHERE 入库单编号=\'20121101\'

 

最好Load入库单编号为\'20121101\'的行,而不是Load整个表,否则效率太低了。

 

另外,何不直接用Foxtable的保存行和加载行的功能,不是更简单吗? 为什么要写SQL语句?