0

SqlParameter私はいくつかのオブジェクトを取ることができる関数を持っています:

Public Shared Function RunSQL(sqlInput As String, Optional params As Data.SqlClient.SqlParameter() = Nothing) As String

目的は基本的に、必要に応じて関数を呼び出し、必要に応じてパラメーターを作成できるようにすることです。

残念ながら、多くの追加パラメーター (私は必要ありません) を追加することなくValue、 とを指定できるコンストラクターはないようです。SqlDbType

望ましい結果は次のようになります。

Dim myStr As String = RunSQL("spMyStoredProc", {New Data.SqlClient.SqlParameter("@FieldName", Data.SqlDbType.NVarChar, 50, "MyValue")})

明らかに、これのコンストラクターは存在しないため、私の質問は基本的に、関数呼び出しでパラメーターを宣言する利便性を維持しながら、代替手段などのように、これを回避する方法があるかどうかを尋ねることです?

Valueプロパティを設定するためだけに、事前にすべてのパラメーターを宣言する必要はありません。

4

1 に答える 1

0

まず、コードはコンパイルされますが、最後のパラメーターは値ではなく、source-column-name です。

Withただし、次のステートメントを使用して割り当てることができますValue

Dim myStr As String = RunSQL("spMyStoredProc",
{
    New Data.SqlClient.SqlParameter("@FieldName", Data.SqlDbType.NVarChar, 50) With {.Value = "MyValue"}
})

参照:オブジェクト初期化子

于 2013-11-05T13:04:00.987 に答える