Рейтинг:
15
Maciej Los
Картик, я бы не рекомендовал использовать конкатенацию строк с SQL. ОП должен пройти whereIn
переменная как параметр в команде, вместо того чтобы объединять ее с whereCondition
в одну строку (команду).
Karthik_Mahalingam
Да Мацей
обновил решение.
Я только что ответил на контекст.
Maciej Los
5ед!
Пожалуйста, посмотрите мой ответ ;)
Karthik_Mahalingam
Спасибо Мацей
The Praveen Singh
@Karthik на самом деле ты не понимаешь, о чем именно я хочу спросить:-
whereCondition + = (ctrlParam as DNTextBox).ConnectedField + " in ('" + string.Присоединяйтесь к("','", (ctrlParam как DNTextBox).Текст.Заменить(",", "','")) + "') и ";
Выше синтаксис возвращает "copkshopno in ('5') и"
Снова через цикл next param приходит Shopgroup, в котором было найдено несколько магазинов, которые я хочу добавить в свое wherecondition в запросе для coshopno.
Karthik_Mahalingam
опубликуйте весь код цикла.
The Praveen Singh
пнл.контроль.CopyTo(arrCtrl, 0);
string whereCondition = строка.Пустой;
строка SelectedValue = "";
//bool selectShop = false;
Список<контроль> Список = новый список<контроль&ГТ;(arrCtrl);
foreach (HtmlControl genParam в списке.FindAll(p => { return (p - HtmlGenericControl); }))
{
if ((ctrlParam as DNTextBox).Вводимый.ToLower () = = " tashop")
{
whereCondition + = (ctrlParam as DNTextBox).ConnectedField + " in ('" + string.Присоединяйтесь к("','", (ctrlParam как DNTextBox).Текст.Заменить(",", "','")) + "') и ";
}
if ((ctrlParam as DNTextBox).Вводимый.ToLower () = = " tashopgroups")
{
строки selectItems = параметры.getShopGroup(строка.Join ("','", (ctrlParam as DNTextBox). Text));
// Select items возвращает shop no на основе группы магазинов, которую я хочу добавить
если (selectItems == "")
{
строковое значение = XYX.Графический интерфейс.Многоязыковой.DNMultiLanguage.Метод GetMessage("noshopfound");
строки sccript = "<сценарий и GT;alertify.предупреждение (" + значение + "');</скрипт&ГТ;";
Страница.ClientScript.RegisterStartupScript(GetType (), "ключ", sccript);
вернуть;
}
}
}
Karthik_Mahalingam
что это содержит
(ctrlParam как DNTextBox). Text
The Praveen Singh
это содержит значение Textbox.
The Praveen Singh
if (whereCondition.Содержит ((ctrlParam as DNTextBox).ConnectedField))
{
// здесь я хочу извиниться.
}
Karthik_Mahalingam
добавить между ними?
The Praveen Singh
// здесь ConnectedField возвращает имена параметров.
Karthik_Mahalingam
как запятая отделяется?
Karthik_Mahalingam
попробуйте просто так в петлю
string columnName = (ctrlParam as DNTextBox).ConnectedField;
string text = ctrlParam as DNTextBox). Text; / / csv , столбец nvarchar в БД
var values = text. Split (',');
whereCondition += string.Format ("{0} in ('{1}')", columnName, string.Присоединяйтесь к("','", ценности));
The Praveen Singh
это вернется так же, как это copkshopno in ('5') и copkshopno in ('1','2','3','4')
который не дает ожидаемого результата из-за оператора AND.
The Praveen Singh
и я не могу использовать здесь оператор OR из-за зависимости от других параметров.
The Praveen Singh
перед вторым параметром пришло значение, похожее на copkshopno in ('5'), и я хочу добавить строковое значение='1,2,3' В оператор in после 5.
Karthik_Mahalingam
сначала сохраните все значения в переменной из цикла, а затем используйте приведенный выше код..
The Praveen Singh
знаете, я хранить все значения в переменной после этого я использовал ваш код вернет такой copkshopno в ('5') и copkshopno в ('1','2','3','4')
Karthik_Mahalingam
List & lt;string & gt; Items = новый список & lt;string> ();
инструкция foreach (.......)
{
string text = ctrlParam as DNTextBox). Text; / / csv , столбец nvarchar в БД
Предметы.Добавить текст);
}
whereCondition += string.Format ("{0} in ('{1}')", columnName, string.Присоединяйтесь К("','", Пользования));
The Praveen Singh
как получить только 5,6,7 от " копкшопно в ('5,6,7') и"