以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何让值显示为Null  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194218)

--  作者:zpsun2003
--  发布时间:2024/11/20 11:23:00
--  如何让值显示为Null
老师,我用这个代码:
cmd.CommandText = "Insert Into 尺寸参数方案库 (序号,层级,参数名称,配置,尺寸名称,数值,备注) Values(\'" & xh2 & "\',\'" & cj3 & "\',\'" & .Rows(i)("参数名称") & "\' ,\'" & .Rows(i)("配置") & "\',\'"& .Rows(i)("尺寸名称") &"\',\'"& .Rows(i)("最终数值") &"\',\'"& th &"\')"
向数据库里写值,赋完值后,发现尺寸参数方案库这个表中“【配置】”本来有空的、有不空的,但这样赋值空的显示的不是(Null),后面查询空值时就没法用“[配置] is Null”。
怎么能赋值时空的就赋值为(Null)?


--  作者:linyunu
--  发布时间:2024/11/20 11:55:00
--  
& IIf(.Rows(i)("配置")>"",.Rows(i)("配置"),Nothing) &

也可查询 "[配置]> \'\'"

--  作者:有点蓝
--  发布时间:2024/11/20 11:56:00
--  
方法1、改为参数化:http://www.foxtable.com/webhelp/topics/3266.htm (建议)
2、
cmd.CommandText = "Insert Into 尺寸参数方案库 (序号,层级,参数名称,配置,尺寸名称,数值,备注) Values(\'" & xh2 & "\',\'" & cj3 & "\',\'" & .Rows(i)("参数名称") & "\' ," & IIF(.Rows(i).isnull("配置"),"NULL","\'" & .Rows(i)("配置") & "\'") & ",\'"& .Rows(i)("尺寸名称") &"\',\'"& .Rows(i)("最终数值") &"\',\'"& th &"\')"

--  作者:zpsun2003
--  发布时间:2024/11/21 14:46:00
--  
老师,有2个问题:
1 改为参数化之后,赋空值的格式怎么写:
\'With Tables("tb4_尺寸信息")
    \'For i As Integer = 0 To ccxxhs-1
        \'xh2 = xh2+1
        \'cj3 = cj4 & "." & i+1
        \'cmd.CommandText = "Insert Into 尺寸参数方案库 (序号,层级,参数名称,配置,尺寸名称,数值,备注) Values(?,?,?,?,?,?,?)"
        \'cmd.Parameters.Add("@序号",xh2)
        \'cmd.Parameters.Add("@层级",cj3)
        \'cmd.Parameters.Add("@参数名称",iif(.Rows(i).Isnull("参数名称"),"Null",.Rows(i)("参数名称")))
        \'cmd.Parameters.Add("@配置",iif(.Rows(i).Isnull("配置"),"Null",.Rows(i)("配置")))
        \'cmd.Parameters.Add("@尺寸名称",iif(.Rows(i).Isnull("尺寸名称"),"Null",.Rows(i)("尺寸名称")))
        \'cmd.Parameters.Add("@数值",iif(.Rows(i).Isnull("最终数值"),"Null",.Rows(i)("最终数值")))
        \'cmd.Parameters.Add("@备注",th)
        \'cmd.ExecuteNonQuery
    \'Next
\'End With
按照上面写,在单元格里赋值的就是NULL这4个字符。
2 按照上面改为参数化的方式后,能赋值第一行,第二行就报错:
调用的目标发生了异常。
已添加了具有相同键的项。

--  作者:有点蓝
--  发布时间:2024/11/21 15:03:00
--  
……
        cmd.CommandText = "Insert Into 尺寸参数方案库 (序号,层级,参数名称,配置,尺寸名称,数值,备注) Values(?,?,?,?,?,?,?)"
cmd.Parameters.clear
        cmd.Parameters.Add("@序号",xh2)
        cmd.Parameters.Add("@层级",cj3)
        cmd.Parameters.Add("@参数名称",iif(.Rows(i).Isnull("参数名称"),nothing,.Rows(i)("参数名称")))
……

--  作者:zpsun2003
--  发布时间:2024/11/21 16:40:00
--  
非常感谢老师,可以了