C # SQL Server - Передача списка в хранимую процедуру

Я вызываю хранимую процедуру SQL Server из моего кода C #:

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 , в набор параметров. Например, моя сохраненная процедура запрос выглядит следующим образом:

SELECT feature 
FROM table1 t1 
INNER JOIN @QueryTable t2 ON t1.fid = t2.fid 
WHERE title IN <LIST_OF_STRINGS_GOES_HERE>

Однако список строк является динамическим и состоит из нескольких сотен.

Есть ли способ передать список строк List в сохраненную процедуру? ?? Или есть способ лучше?

Большое спасибо, Бретт

105
задан marc_s 17 August 2011 в 18:01
поделиться