以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]程序自动生成sql字符串插入不进数据库  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86956)

--  作者:baicaocao
--  发布时间:2016/6/29 16:57:00
--  [求助]程序自动生成sql字符串插入不进数据库

问题描述:

程序自动生成sql字符串之后,然后执行插入,结果是没有插入数据,但是根据生成的sql字符串,直接在sql客户端执行或者在狐表sql窗口执行,就没任何问题,请高手帮忙。。。

下面是代码:

 


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


--  作者:大红袍
--  发布时间:2016/6/29 17:02:00
--  
insert 语句那里,你好像没有执行 cmd.ExecuteNonQuery()
--  作者:baicaocao
--  发布时间:2016/6/29 17:19:00
--  
 MessageBox.Show(cmd.ExecuteNonQuery()),已经执行了
--  作者:baicaocao
--  发布时间:2016/6/29 17:20:00
--  
 已经执行了MessageBox.Show(cmd.ExecuteNonQuery())
--  作者:大红袍
--  发布时间:2016/6/29 17:25:00
--  

 只要sql语句正确并执行,就不应该有问题的啊。

 

 把其余的代码都删除单独执行insert语句。


--  作者:baicaocao
--  发布时间:2016/6/29 17:31:00
--  
 我试试
--  作者:baicaocao
--  发布时间:2016/6/29 17:31:00
--  

25号的时候,这个代码,我测试的时候是没问题的

 


--  作者:大红袍
--  发布时间:2016/6/29 17:33:00
--  
看是否进入执行了代码,只要执行,就没问题。
--  作者:baicaocao
--  发布时间:2016/6/29 17:43:00
--  

已经删除到如下代码,一样不会插入值:

Dim fr As WinForm.Form = Forms("生产记录")
Dim tbmx As Table = Tables(fr.Name & "_Table1")
If tbmx.Current Is Nothing Then
    Functions.Execute("msg","当前没有单据,不需要保存.")
    Return Nothing
End If
Dim cmd As new SQLCommand
cmd.C
For Each r As DataRow In tbmx.DataTable.DataRows
    If r.RowState <> DataRowState.Unchanged Then
        \'先判断空行.
        \'判断是否新增.如果新增状态.则进行设置.
        If r.RowState = DataRowState.Added Then
            \'查询关键道次
            cmd.CommandText = "SELECT 关键道次 FR OM 检测米数设置表 where 管型=\'" & r("管型") & "\'"
            Dim x As String = cmd.ExecuteScalar()
            Dim cx As String
            \'查询预警记录表,先插入关键道次,先查询关键道次
            cx = "INSERT INTO 备件检测预警表 (管型 ,  预警日期 ,  截止日期 ,  " & _
            "累计运行米数 ,预警状态 ,预警米数 ,道次 ,备件编号,检测状态) SELECT a.管型,GETDATE(),\'" & r("截止日期") & _
            "\',a.累计运行米数 + " & r("生产产量")/r("系数") & ",\'关键报警\',a.累计运行米数 + " & _
            r("生产产量")/r("系数") & ",a.道次,a.备件编号,\'未检测\'" & _
            " FRO M 模具备件表 a,检测米数设置表 b WHERE a.管型 = \'" & r("管型") & _
            "\' and 状态= \'在线\' AND a.累计运行米数 + " & r("生产产量")/r("系数") & " >= b.关键检测米数 And a.道次 In (\'" & x.Replace(",","\',\'") & "\') and " & _
            "a.管型 = b.管型"
            cmd.CommandText = cx
            cmd.ExecuteNonQuery()
            tbmx.save()
        End If
    End If
Next


--  作者:baicaocao
--  发布时间:2016/6/29 17:44:00
--  回复:(大红袍) 只要sql语句正确并执行,就不应...
 还是不行。。