質問

コードがあります:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", "19601023",
             }

ただし、空の値をストアドプロシージャに渡すことができるように、それらを使用しないようにしたいと考えています。

文字列でこれは簡単です。文字列を渡すことができます。ただし、空の日付を渡したい場合は、これは問題です。

私は明らかに試しました:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", null,
             }

しかし、これは機能しません、エラーを与えます:

System.Exception:queryParameterはsystem.objectのタイプにすることはできません。

いくつかの読書の後、私はexecuteCommandがヌルパラメーターをサポートしていないことを知りましたが、仕様はそうすべきだと主張しています。

誰かがこの問題に遭遇し、回避策を見つけましたか?

本当にありがとう

役に立ちましたか?

解決

やってみました:

DBNull.Value

他のヒント

送信してみましたか DBNull.Value または新しい Nullable<DateTime>() ?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top