が、私はそうのようなパラメータを初期化します。_DependencyID場合クラス挿入()メソッドでcmd.Parameters.AddWithValue NULL可能int型
private int? _DependencyID;
public int? DependencyID
{ get {return _DependencyID;} set {_DependencyID = value;} }
public ConstructorMethod()
{
_DependencyID = (int?)null;
}
、私は
cmd.AddWithValue("@DependencyID", _DependencyID);
をしようとしています価値があり、すべてが順調です。 _DependencyIDがnullの場合、私はエラーを取得:
The parameterized query '(@param1(nvarchar(10), @param2(nvarchar(255), expects the parameter '@DependecyID", which was not supplied
私は[1]この[記事]を見つけたので、私はそうのようなコードを調整しようとした:
cmd.AddWithValue("@DependencyID", _DependencyID == null? DBNull.Value : _DependencyID);
and
cmd.AddWithValue("@DependencyID", _DependencyID == null? (int?) DBNull.Value : _DependencyID);
をいずれかの方法を、問題があります。私はこれをどのように扱うべきですか?任意の助けを事前に
おかげ
DBNull.Valueは、オブジェクトに_DependencyIDをキャストするオブジェクトであるため、理解していますか?だからcmdはボクシングとunboxingの世話をする? – Bengal
お世話になりました皆さん、ありがとうございました.... SLakの答えは私のところに飛び出しました。すべてありがとうございました – Bengal
@Bengal:いいえ、式がどのような型かをコンパイラに伝えるためにはキャストが必要です。 – SLaks