以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  SQLCommand提示未将对象引用设置到对象的实例,但是又能够写入数据到表中,为何?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176957)

--  作者:cnsjroom
--  发布时间:2022/5/5 0:31:00
--  SQLCommand提示未将对象引用设置到对象的实例,但是又能够写入数据到表中,为何?

SQLCommand提示未将对象引用设置到对象的实例,但是又能够写入数据到表中,为何?

麻烦老师帮忙看看怎么避免错误提示的弹出呢?

 

 

当前代码如下:

 

Dim tR123 As DataRow = DataTables("h5设置").Find("id = \'1\'")
Dim tbn As String = args(0)
Dim wzbm As String = args(1)
Dim cjr As String = _username  \'创建人
Dim rqi As Date = Date.Today  \'创建时间

\'新增后向新增表添加 创建时间.
Dim dt,dt1 As DataTable
Dim cmd As new SQL Command
cmd.ConnectionN ame = tr123("数据库名称")

cmd.Comma ndText = "Sel ect * Fr om " & tbn & " where 外置编码 = \'" & wzbm & "\' "
dt = cmd.ExecuteReader(True)
For Each dr As DataRow In dt.DataRows
    \'MessageBox.Show(tbn & ":" & dr("_Identify"))
    Dim val As Integer
    val = dr("_Identify")
   
    \'实现功能代码1
    Dim cmd1 As new SQLCo mmand
    cmd1.Connecti onName = tr123("数据库名称")
    cmd1.CommandText = "UPD ATE " & tbn & " SET id = ? ,创建人 = ? , 创建时间 = ? WHERE [_Identify] = ? "
    cmd1.Parameters.Add("@id",val)
    cmd1.Parameters.Add("@创建人",cjr)
    cmd1.Parameters.Add("@创建时间",rqi)
    cmd1.Parameters.Add("@[_Identify]",val)
    cmd1.ExecuteNonQuery()
   
    \'实现功能代码2
    \'Dim cmd2 As new S QLCo mmand
    \'cmd2.Connectio nName = tr123("数据库名称")
    \'cmd2.CommandText = "Sele ct [_Identify],id,创建人,创建时间 fro m " & tbn & " Where [_Identify] = ? "   \'检索 sql物品信息 并生成临时表
    \'cmd2.Parameters.Add("@[_Identify]",val)
    \'dt1 = cmd1.ExecuteReader(True) \'生成临时表
    \'For Each dr1 As DataRow In dt1.DataRows \'遍历临时表
    \'dr1("id") = dr("_Identify") \'入库数量赋值
    \'dr1("创建人") = _username \'入库数量赋值
    \'dr1("创建时间") = rqi \'入库数量赋值
    \'Next
    \'dt1.Save \'保存
Next
dt.Save

 

错误依次提示:

1、

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:
详细错误信息:
至少一个参数没有被指定值。

 

2、

调用的目标发生了异常。

3、

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:自定义函数,新增后信息写入
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

 


--  作者:有点蓝
--  发布时间:2022/5/5 8:39:00
--  
调试看出错的时候执行的是那条sql

 \'实现功能代码1
    Dim cmd1 As new SQLCo mmand
    cmd1.Connecti onName = tr123("数据库名称")
    cmd1.CommandText = "UPD ATE " & tbn & " SET id = ? ,创建人 = ? , 创建时间 = ? WHERE [_Identify] = ? "
msgbox(cmd1.CommandText)
    cmd1.Parameters.Add("@id",val)
    cmd1.Parameters.Add("@创建人",cjr)