2013-05-02 35 views
4

我正在運行一個循環添加參數,當我得到一個NULL,程序punts。我的發言是這樣的:Npgsql參數與NULL值,vb.net

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是什麼,我的執行語句失敗。我想只在數據庫中插入一個NULL值。有任何想法嗎?謝謝你的幫助!

回答

8

插入數據庫中的字段中的NULL值,則需要將DBNull.Value傳遞到您的參數

您可以使用VB.NET ternary operator檢查如果obj本身是沒有或者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))