C#コードからSQL Serverストアドプロシージャを呼び出しています。
using (SqlConnection conn = new SqlConnection(connstring))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("InsertQuerySPROC", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
var STableParameter = cmd.Parameters.AddWithValue("@QueryTable", QueryTable);
var NDistanceParameter = cmd.Parameters.AddWithValue("@NDistanceThreshold", NDistanceThreshold);
var RDistanceParameter = cmd.Parameters.AddWithValue(@"RDistanceThreshold", RDistanceThreshold);
STableParameter .SqlDbType = SqlDbType.Structured;
NDistanceParameter.SqlDbType = SqlDbType.Int;
RDistanceParameter.SqlDbType = SqlDbType.Int;
// Execute the query
SqlDataReader QueryReader = cmd.ExecuteReader();
私のストアドプロシージャはかなり標準的ですが、結合を行いますQueryTable
(そのため、ストアドプロシージャを使用する必要があります)。
今:文字列のリストをList<string>
パラメーターセットに追加します。たとえば、ストアドプロシージャクエリは次のようになります。
SELECT feature
FROM table1 t1
INNER JOIN @QueryTable t2 ON t1.fid = t2.fid
WHERE title IN <LIST_OF_STRINGS_GOES_HERE>
ただし、文字列のリストは動的で数百に及びます。
文字列のリストをList<string>
ストアドプロシージャに渡す方法はありますか?またはこれを行うより良い方法はありますか?
ありがとう、ブレット
using
ブロック内に置く必要があります。