Sto chiamando una stored procedure di SQL Server dal mio codice 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();
La mia procedura memorizzata è abbastanza standard ma fa un join con QueryTable
(da qui la necessità di utilizzare una procedura memorizzata).
Ora: voglio aggiungere un elenco di stringhe,, List<string>
al set di parametri. Ad esempio, la mia query proc archiviata funziona in questo modo:
SELECT feature
FROM table1 t1
INNER JOIN @QueryTable t2 ON t1.fid = t2.fid
WHERE title IN <LIST_OF_STRINGS_GOES_HERE>
Tuttavia, l'elenco delle stringhe è dinamico e lungo alcune centinaia.
C'è un modo per passare un elenco di stringhe List<string>
al processo memorizzato ??? O c'è un modo migliore per farlo?
Molte grazie, Brett
using
blocco.