Rss & SiteMap

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

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

标题:这个SQL语句为什么不执行?

1楼
blackzhu 发表于:2011/5/12 7:37:00
Dim d As String = e.Form.Controls("制单ID").Value
Dim t As String = e.Form.Controls("ID").Value
Dim d1 As String = e.Form.Controls("口岸").Value
If d1<>"" Then
    Dim dt As DataTable
    Dim cmd1 As New SQLCommand
    cmd1.C
    cmd1.CommandText = "Update {订单明细} set 口岸='" & d1 & "' Where 制单ID =  '" & d & "'and序号='" & T & "'"
    dt = cmd1.ExecuteReader()
    DataTables ("订单明细_table1").Load()
End If

老大帮看看,这一条语句为什么不执行?我把序号给删掉会把所有制单ID匹配的数据全部修改,但是只要加上序号就不动了.
2楼
狐狸爸爸 发表于:2011/5/12 7:52:00

呵呵,先提一个小问题,不是什么时候都要用ExecuteReader的,SQLCommand有好几个方法,要区分以下。

另在执行前,先Output.Show(cmd1.CommandText)

看看合成的Update语句是什么,特别是合成的条件。

最好复制条件,在SQl执行窗口执行:

 

Select * From {订单明细} From 你合成的条件

 

看看是否有符合条件的行。

 

3楼
blackzhu 发表于:2011/5/12 7:56:00
Dim d As String = e.Form.Controls("ID").Value
Dim d1 As String  = e.Form.Controls("制单ID").Value
Dim dt As DataTable
Dim cmd1 As New SQLCommand
cmd1.C
cmd1.CommandText = "SELECT * From {订单明细} Where [制单ID]='" & d1 & "'And [序号]='" & d & "'"
dt = cmd1.ExecuteReader()
If dt.DataRows.Count > 0 Then
    Messagebox.show("序号已经存在,不能重覆!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel=True
End if

这个还是照执行,没有判断后台有没有同样的数据?如有就不执行.
4楼
狐狸爸爸 发表于:2011/5/12 8:08:00

呵呵,Update会判断Where后面的条件的,如果有符合条件条件的行,一定会执行,这点不用怀疑。

你判断没有执行的依据是load后口岸的值没有变化,说不定新旧的值本来就一样呢?

 

5楼
blackzhu 发表于:2011/5/12 9:13:00
这个没有.我发上来测试一下:两个窗口,一个项目列表,一个是订单明细.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:服装系统.rar

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

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

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 3 queries.