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