Date: 24.12.2016 9:13:29
Какое исключение генерируется?
К чему тут Variant? Просто SqlParameter myPar
= new SqlParameter("@List_par",
List_par); не работает?
Date: 26.12.2016 5:34:08
проще наверно будет сделать вот так:
StringBuilder sb = new StringBuilder(); SqlParameter myPar; for (int i=0; i< List_par.Count; i++) { sb.AppendFormat("@p{0},",i); myPar=new SqlParameter("p"+i.ToString(), List_par[i]); query.Parameters.Add(myPar); } query.CommandText = string.Format("SELECT f.id, udf.FOR_LIST(f.id,[{0}]) AS funk FROM Items f", sb.ToString().TrimEnd(','));
Date: 26.12.2016 6:39:31
да, вместо List_par.Count - List_par.Length
вместо CommandText - QueryText
но для начала попробуйте так прописать статически запрос (с одинарными кавычками):
query.QueryText="SELECT f.id, udf.FOR_LIST(f.id, ['auto_1','auto_2']) AS funk FROM Items f";
Date: 26.12.2016 7:47:04
если так работает, то и мой предыдущий пример должен работать
можно еще так попробовать (подключить Newtonsoft.Json.Linq):
string[] arr={ "auto_1", "auto_2" }; JArray List_par=new JArray(arr); SqlParameter myPar = new SqlParameter("@List_par", List_par); query.Parameters.Add(myPar);
"через формирование строки запроса в следующем виде...Наверное придется так и делать"
Будьте внимательны со сборкой запросов напрямую. Если содержимое list_par будет приходить в программу из
внешнего источника, возможна SQL-инъекция.
Автор: VadimTagil