Npgsql参数带有NULL值,vb.net

时间:2013-05-02 22:05:54

标签: vb.net postgresql parameters npgsql

我正在运行一个循环添加参数,当我得到一个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值。有任何想法吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:9)

要在数据库字段中插入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))