Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Изменение SQL-запроса в коде приложения. / 11 сообщений из 11, страница 1 из 1
18.11.2013, 12:01
    #38468338
Kuks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
Добрый день всем! Есть приложение-клиент MS SQL 2008. В конструкторе запросов адаптера таблице создан запрос вида:
Код: sql
1.
Select * From TableName Where (Column1 LIKE @Column1 Or Column1 Like '' Or Column1 Is Null) And (Column2 LIKE @Column2 Or Column2 Like '' Or Column2 Is Null)



Теперь вопрос, в зависимости от выбора пользователя, как преобразовать запрос в вид, например:

Код: sql
1.
Select * From TableName Where (Column1 LIKE @Column1 Or Column1 Like '' Or Column1 Is Null) And (Column2 LIKE @Column2)


или

Код: sql
1.
Select * From TableName Where (Column1 LIKE @Column1) And (Column2 LIKE @Column2 Or Column2 Like '' Or Column2 Is Null)


?
...
Рейтинг: 0 / 0
18.11.2013, 12:40
    #38468416
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
Kuks,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
if (uTakVot)
{
    sqlCommand.Text = "Select * From TableName Where (Column1 LIKE @Column1 Or Column1 Like '' Or Column1 Is Null) And (Column2 LIKE @Column2)";
}
else
{
    sqlCommand.Text = "Select * From TableName Where (Column1 LIKE @Column1) And (Column2 LIKE @Column2 Or Column2 Like '' Or Column2 Is Null)";
}
...
Рейтинг: 0 / 0
18.11.2013, 12:41
    #38468418
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
Вместо sqlCommand - adapter.SelectCommand
...
Рейтинг: 0 / 0
18.11.2013, 13:37
    #38468521
Kuks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
Дак это понятно, я бы так и сделал. Но дело в том, что в блоке Where.... используется 8 параметров, и собирать такую конструкцию тяжеловато будет с помощью if....
...
Рейтинг: 0 / 0
18.11.2013, 13:44
    #38468527
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
соседнюю тему читай
...
Рейтинг: 0 / 0
18.11.2013, 13:53
    #38468544
Kuks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
Ок, спасибо, буду думать.....
...
Рейтинг: 0 / 0
18.11.2013, 14:40
    #38468622
Kuks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
Вот интересная мысль в соседней ветке, если поиск производится по большому числу полей, зачем городить большой запрос, не проще ли формировать текст запроса динамически, и прописывать where только по тем полям, которые нужны?
...
Рейтинг: 0 / 0
18.11.2013, 14:47
    #38468632
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
KuksДак это понятно, я бы так и сделал. Но дело в том, что в блоке Where.... используется 8 параметров, и собирать такую конструкцию тяжеловато будет с помощью if....

если поиск производится по большому числу полей, зачем городить большой запрос, не проще ли формировать текст запроса динамически, и прописывать where только по тем полям, которые нужны?


Вам не угодишь!
...
Рейтинг: 0 / 0
18.11.2013, 14:50
    #38468640
Kuks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
Я понимаю ваш справедливый сарказм, но у меня запрос выполняется в отдельном потоке, и как в потоке вызывать метод Fill с переменным число параметров я пока не представляю. Если я правильно понимаю, то TableAdapter.Fill будет иметь разное число аргументов, тогда как быть?
...
Рейтинг: 0 / 0
18.11.2013, 15:03
    #38468667
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
у TableAdapter.Fill не может быть разного количества параметров. Перед запуском потока правильно сформируй adapter.SelectCommand и задай ему параметры, в чем проблема?
...
Рейтинг: 0 / 0
18.11.2013, 15:21
    #38468690
Kuks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение SQL-запроса в коде приложения.
Понял, сужу туплю уже.......
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Изменение SQL-запроса в коде приложения. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]