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 ステートメントは失敗します。DBにNULL値を挿入したいだけです。何か案は?助けてくれてありがとう!

4

1 に答える 1

9

データベース フィールドに NULL 値を挿入するには、 DBNull.Valueをパラメーターに渡す必要があります。

VB.NET 三項演算子を使用して、Obj 自体が Nothing であるかどうか、または Obj.Value が何もないかどうかを確認し、その場合 (true) DBNull.ValueObj.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 に答える