Npgsql参数带有NULL值,vb.net

我正在运行一个循环添加参数,当我得到一个NULL,程序平底锅.我的陈述如下:

mysql = "Insert into TABLE (field1) VALUES (:Col1)"

mycomm = New NpgsqlCommand (mySQL,conn)

myComm.Parameters.Add("Col" & cCnt,NpgsqlTypes.NpgsqlDbType.Double).Value = Obj.value

myComm.ExecuteNonQuery()

如果Obj.value不为空,这可以正常工作,但如果Obj.value为空,我的Execute语句将失败.我想在数据库中插入一个NULL值.有任何想法吗?谢谢你的帮助!

解决方法

要在数据库字段中插入NULL值,需要将 DBNull.Value传递给参数

您可以使用VB.NET ternary operator来检查Obj本身是否为Nothing或Obj.Value是否为零,在这种情况下(true)传递DBNull.Value而不是Obj.Value

myComm.Parameters.Add("Col" & cCnt,NpgsqlTypes.NpgsqlDbType.Double).Value = 
                      If(Obj Is Nothing OrElse Obj.Value Is Nothing,DBNull.Value,Obj.value))

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...