以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  filter该怎样写  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179974)

--  作者:lfz
--  发布时间:2022/9/21 14:01:00
--  filter该怎样写

我在表DataColChanged写了这样的代码

Dim st As Date = Date.Now \'将开始时间保存在变量st中
If e.DataCol.name = "支出" OrElse e.DataCol.name = "申请单号" Then  \'更新申请单的已预支金额
    Dim filter As String
    If e.DataRow.IsNull("申请单号") Then
       
        filter = "申请单号 = \'" & e.OldValue & "\'"
    Else
        filter = "申请单号 = \'" & e.NewValue & "\'"
    End If
    MessageBox.Show(filter)  \'结果是  申请单号= \'202209014\' 也是对的
    Dim val As Integer
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "S elect Sum(支出) From {流水账} Where filter \'这一步就显示有一个参数未指定值
    val = cmd.ExecuteScalar()
    MessageBox.Show(val)
   
    DataTables("申请单").SQLReplaceFor("已预支金额",val,filter) \'这一步就显示有一个参数未指定值
   
End If
MessageBox.Show("更新申请单的已预支金额 耗时: " & (Date.Now - st).TotalSeconds & "秒") \'计算并显示执行代码所花费的秒数


--  作者:有点蓝
--  发布时间:2022/9/21 14:08:00
--  
Dim st As Date = Date.Now \'将开始时间保存在变量st中
If e.DataCol.name = "申请单号" Then  \'更新申请单的已预支金额
    Dim filter As String
    If e.DataRow.IsNull("申请单号") Then
       
        filter = "申请单号 = \'" & e.OldValue & "\'"
    Else
        filter = "申请单号 = \'" & e.NewValue & "\'"
    End If
    MessageBox.Show(filter)  \'结果是  申请单号= \'202209014\' 也是对的
    Dim val As Integer
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "S elect Sum(支出) From {流水账} Where " & filter


--  作者:lfz
--  发布时间:2022/9/21 17:07:00
--  回复:(有点蓝)Dim st As Date = Date.Now '将开始时...

还是同样的错误提示,且val值两种判断下都为0


--  作者:有点蓝
--  发布时间:2022/9/21 17:23:00
--  
调试

    cmd.CommandText = "Select Sum(支出) From {流水账} Where " & filter
    MessageBox.Show(cmd.CommandText 

--  作者:lfz
--  发布时间:2022/9/22 9:14:00
--  回复:(有点蓝)调试    cmd.Command...

按照老师的方法检查,我在where后面少了一个空格图片点击可在新窗口打开查看,加上就好了,不过每次为什么写了代码当时不能起作用,要把bin文件夹删除重启软件才行

cmd.CommandText = "S elect Sum(支出) From {流水账} Where " & filter


--  作者:有点蓝
--  发布时间:2022/9/22 9:50:00
--  
当时不能起作用应该是系统环境有问题。