- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
if (textBox[0].Text == "" && textBox[1].Text == "" && textBox[2].Text == "" && textBox[3].Text == "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("");
else if (textBox[0].Text != "" && textBox[1].Text == "" && textBox[2].Text == "" && textBox[3].Text == "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[surname] LIKE '%{0}%'", textBox[0].Text);
else if (textBox[0].Text == "" && textBox[1].Text != "" && textBox[2].Text == "" && textBox[3].Text == "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[name] LIKE '%{0}%'", textBox[1].Text);
else if (textBox[0].Text == "" && textBox[1].Text == "" && textBox[2].Text != "" && textBox[3].Text == "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[midname] LIKE '%{0}%'", textBox[2].Text);
else if (textBox[0].Text == "" && textBox[1].Text == "" && textBox[2].Text == "" && textBox[3].Text != "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("course={0}", textBox[3].Text);
else if (textBox[0].Text == "" && textBox[1].Text == "" && textBox[2].Text == "" && textBox[3].Text == "" && textBox[4].Text != "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("group={0}", textBox[4].Text);
else if (textBox[0].Text != "" && textBox[1].Text != "" && textBox[2].Text == "" && textBox[3].Text == "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[surname] LIKE '%{0}%' and [name] LIKE '%{1}%'", textBox[0].Text, textBox[1].Text);
else if (textBox[0].Text == "" && textBox[1].Text != "" && textBox[2].Text != "" && textBox[3].Text == "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[name] LIKE '%{0}%' and [midname] LIKE '%{1}%'", textBox[1].Text, textBox[2].Text);
else if (textBox[0].Text == "" && textBox[1].Text == "" && textBox[2].Text != "" && textBox[3].Text != "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[midname] LIKE '%{0}%' and course={1}", textBox[2].Text, textBox[3].Text);
else if (textBox[0].Text == "" && textBox[1].Text == "" && textBox[2].Text == "" && textBox[3].Text != "" && textBox[4].Text != "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("course={0} and group={1}", textBox[3].Text, textBox[4].Text);
else if (textBox[0].Text != "" && textBox[1].Text != "" && textBox[2].Text != "" && textBox[3].Text == "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[surname] LIKE '%{0}%' and [name] LIKE '%{1}%' and [midname] LIKE '%{2}%'", textBox[0].Text, textBox[1].Text, textBox[2].Text);
else if (textBox[0].Text == "" && textBox[1].Text != "" && textBox[2].Text != "" && textBox[3].Text != "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[name] LIKE '%{0}%' and [midname] LIKE '%{1}%' and course={2}", textBox[1].Text, textBox[2].Text, textBox[3].Text);
else if (textBox[0].Text == "" && textBox[1].Text == "" && textBox[2].Text != "" && textBox[3].Text != "" && textBox[4].Text != "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[midname] LIKE '%{0}%' and course={1} and group={2}", textBox[2].Text, textBox[3].Text, textBox[4].Text);
else if (textBox[0].Text != "" && textBox[1].Text != "" && textBox[2].Text != "" && textBox[3].Text != "" && textBox[4].Text == "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[surname] LIKE '%{0}%' and [name] LIKE '%{1}%' and [midname] LIKE '%{2}%' and course={3}", textBox[0].Text, textBox[1].Text, textBox[2].Text, textBox[3].Text);
else if (textBox[0].Text == "" && textBox[1].Text != "" && textBox[2].Text != "" && textBox[3].Text != "" && textBox[4].Text != "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[name] LIKE '%{0}%' and [midname] LIKE '%{1}%' and course={2} and group={3}", textBox[1].Text, textBox[2].Text, textBox[3].Text, textBox[4].Text);
else if (textBox[0].Text != "" && textBox[1].Text != "" && textBox[2].Text != "" && textBox[3].Text != "" && textBox[4].Text != "")
myViewStudentsTable.DefaultView.RowFilter = string.Format("[surname] LIKE '%{0}%' and [name] LIKE '%{1}%' and [midname] LIKE '%{2}%' and course={3} and group={4}", textBox[0].Text, textBox[1].Text, textBox[2].Text, textBox[3].Text, textBox[4].Text);
"Есть 5 текстовых полей и желание понять, как можно в зависимости от пустоты или заполненности этих полей, одного или нескольких создать малое количество операторов if else"
Порадовало "малое количество"
cyperh 08.04.2015 20:43 # −13
cyperh 08.04.2015 20:58 # −14
kegdan 08.04.2015 21:08 # −13
wvxvw 09.04.2015 00:05 # −14
Но что-то мне подсказывает, что наверное можно было лучше.
myaut 09.04.2015 00:14 # −13
wvxvw 09.04.2015 00:47 # −11
roman-kashitsyn 09.04.2015 10:29 # −13
Lokich 09.04.2015 11:37 # −13
bormand 09.04.2015 11:54 # −13
kegdan 09.04.2015 18:11 # −14
kegdan 09.04.2015 18:10 # −14
bormand 09.04.2015 21:59 # −13
kegdan 09.04.2015 22:06 # −14
bormand 09.04.2015 22:09 # −14
P.S. А Join тут поюзать не получится вместо поклейки вручную?
kegdan 09.04.2015 22:12 # −14
можно всегда писать после and а потом стереть последние n символов из стрингбилдера, но этот как то не тру что-ли...
bormand 09.04.2015 22:17 # −14
kegdan 09.04.2015 22:19 # −14
bormand 09.04.2015 22:23 # −13
kegdan 09.04.2015 22:27 # −12
Хотя может это говорит маленький псевдооптимизптор внутри меня
bormand 09.04.2015 22:29 # −14
Вот с массивом то как раз проще... И с массивом можно убрать цикл, при необходимости. С ручной поклейкой and'ов ты заебёшься это делать.
kegdan 09.04.2015 22:31 # −13
bormand 09.04.2015 22:33 # −14
kegdan 09.04.2015 22:34 # −14
bormand 09.04.2015 22:39 # −14
kegdan 09.04.2015 22:46 # −13
kegdan 09.04.2015 22:50 # −14
там же Entity Framework и linq to sql
пишешь на линке, он сам в sql запрос конвертит
bormand 09.04.2015 22:52 # −14
kegdan 09.04.2015 22:59 # −14
bormand 09.04.2015 23:11 # −13
kegdan 09.04.2015 23:27 # −10
someDataSet.Where(cond);
Только я не уверен будет ли это неполным запросом, или эфик его добьет до полного. По сути там режим - пиши и молись что он преобразует так как надо.
Ну и в любом случае можно инъекции писать самому, если не нравиться ORM
В общем нужно курить маны по эфику что бы точно ответить.
А где юзаются такие неполные запросы? Просто я сертификацию собираюсь проходить по sql, хочется быть в курсе
bormand 10.04.2015 00:00 # −13
Ну ты же сам написал - myViewStudentsTable.DefaultView.RowFilter.
kegdan 10.04.2015 00:05 # −11
bormand 09.04.2015 22:38 # −14
Константы головного мозга? Разве что захочется замутить переключалку or/and...
kegdan 09.04.2015 22:44 # −13
kegdan 09.04.2015 22:36 # −14
bormand 09.04.2015 22:22 # −12
kegdan 09.04.2015 22:24 # −14
Отсыпь)
bormand 09.04.2015 22:11 # −14
xyilka 09.04.2015 01:57 # +12
botbatbotbatbot 09.04.2015 03:27 # −15
botbatbotbatbot 09.04.2015 03:29 # −15
gazenva85 09.04.2015 04:14 # −15
StackBlower 09.04.2015 04:15 # −14
treoie 09.04.2015 04:17 # −15
gost 09.04.2015 10:21 # −14
dmli 10.04.2015 20:37 # −14
3.14159265 10.04.2015 20:40 # −13
guest 10.04.2015 20:42 # −12
bormand 10.04.2015 21:17 # −11
> не он
Стертор мстит за Сёму?
kalximik 10.04.2015 22:51 # −1