5

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

4

1 回答 1

9

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

您可以使用VB.NET 三元运算符来检查 Obj 本身是否为 Nothing 或 Obj.Value 是否为空,在这种情况下(真)通过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))
于 2013-05-02T22:07:58.513 回答