2

私はいくつかのコードを持っています:

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

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

文字列を使用すると、これは簡単です。String.Empty を渡すだけで機能します。ただし、空の日付を渡したい場合、これは問題です。

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

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

しかし、これは機能せず、エラーが発生します:

System.Exception: クエリ パラメーターを System.Object 型にすることはできません。

いくつか読んだ後、仕様がそうすべきであると主張している間、ExecuteCommandはnullパラメータをサポートしていないことがわかりました。

この問題に遭遇し、回避策を見つけた人はいますか?

本当にありがとう

4

2 に答える 2

4

やってみました:

DBNull.Value
于 2010-01-22T12:45:26.803 に答える
1

送信DBNull.Valueまたは新規を試しましたNullable<DateTime>()か?

于 2010-01-22T12:46:25.707 に答える