sql >> データベース >  >> RDS >> Sqlserver

SqlParameterの名前/値コンストラクターが0をnullとして扱うのはなぜですか?

    ドキュメント に記載されているとおり そのコンストラクターの場合:

    自分の場合とは異なるコンストラクターを呼び出していただけです。

    この理由は、C#では暗黙的が許可されているためです。 整数リテラル0からの変換 列挙型(その下にある整数型)に変換すると、この暗黙の変換によって(string, SqlDbType)が発生します。 intを変換するために必要なボクシングの変換よりも、オーバーロードの解決に適したコンストラクター object(string, object)の場合 コンストラクター。

    intを渡す場合、これが問題になることはありません。 変数 、その変数の値が0であっても (ゼロリテラルではないため)、またはタイプがintの他の式 。 intを明示的にキャストした場合も発生しません objectへ 上記のように、一致するオーバーロードは1つしかないためです。



    1. SQLサーバーのストアドプロシージャのバージョン管理を行うための最良の方法は何ですか?

    2. MySQLでのOracleのRowIDに相当

    3. MySQLの日、月、年のフィールドから日付を作成します

    4. postgresqlでパスワードをハッシュするにはどうすればよいですか?