MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Метод для запроса информации из базы на C#"
Answer 848132
Не используйте
String.Format
для построения SQL-запросов, это небезопасно. Вместо этого, используйте параметры.Для вызова хранимой процедуры не обязательно составлять запрос EXEC вручную, можно установить тип запроса
CommandType.StoredProcedure
, тогда достаточно написать имя процедурыМетод для вызова процедуры, возвращающей список строковых значений, можно реализовать как-то так:
using System; using System.Linq; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; public static IEnumerable<string> ExecuteProcedure(string sql, params SqlParameter[] args) { SqlConnection con = new SqlConnection(con_str); con.Open(); using (con) { SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = sql; cmd.Connection = con; for(int i=0;i<args.Length;i++) { cmd.Parameters.Add( args[i]); } SqlDataReader rd = cmd.ExecuteReader(); using (rd) { DataTable dt = new DataTable(); dt.Load(rd); var results = from myRow in dt.AsEnumerable() select myRow[0].ToString(); return results; } } }
Использование:
var collection = ExecuteProcedure("dbo.[Match]", new SqlParameter("FN_Client", fn), new SqlParameter("LN_Client ", ln), new SqlParameter("MN_Сlient ",mn)); foreach (var s in collection ) Console.WriteLine(s);
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.