Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для Midian
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690

Сделать поиск по выбранному полю в таблице

06.08.2014, 17:21. Показов 1859. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с такой вот задачей, хочу сделать поиск по выбранному полю в таблице, выбираем в комбобоксе нужное поле таблицы, а во втором комбобоксе он мне выводит содержимое этого поля, далее я нажимаю кнопку и должен сработать SQL запрос, пишу вот так:
C#
1
dataGridViewSectionData.DataSource = context.Database.SqlQuery<String>("Select * From SectionDataUmcView Where [" + comboBoxSearch.Text + "] = '" + comboBoxSearchItem.Text + "'").ToList();
На выходе получаю результат, типа у вас возвращаются поля различных типов, как мне указать универсальный тип в SQlQure<> либо указать мои 3 типа которые используются в таблице, это int, DateTime и String. В чистом ADO.NET такой проблемы не было, там не нужно было указывать тип выходного значения. Подскажите кто уже сталкивался с подобным, в какую сторону рыть, так как другие запросы жестко привязаны к полям по которым будем делать фильтрацию, остается только такой выход, использовать чистый SQL в Linq.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.08.2014, 17:21
Ответы с готовыми решениями:

Отчет по выбранному полю в таблице
Добрый день! Подскажите,пожалуйста, как вывести отчет только по определенным данным из таблицы. А то при отображении отчета...

Быстрый поиск по выбранному полю
procedure TfmMenu.sEdit8Change(Sender: TObject); var str, s: string; v: byte; i: char; b: bool; begin ...

Поиск по всей таблице по полю
Здравствуйте. Есть код, который лежит в интернете: Private Sub ClientForFilter_Change() Dim strFind As String strFind =...

11
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
06.08.2014, 18:09
Midian, значение лучше вводить в textBox а не comboBox
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
BindingSource bs = new BindingSource();//поле класса-формы
Form_Load
{
using(SqlConnection conn ...)
{
    SqlDataAdapter ada = new SqlDataAdapter("Select * From SectionDataUmcView", conn);
    DataTable dt = new DataTable();
    ada.Fill(dt);
    bs.DataSource = dt;
    dataGridViewSectionData.DataSource = bs;
}
}
comboBoxSearch_SelectedIndexChanged
{
     bs.Filter = comboBoxSearch.Text + "=" + textBoxSearchItem.text;
}
 
textBoxSearchItem_TextChanged
{
   bs.Filter = comboBoxSearch.Text + "=" + textBoxSearchItem.text;
}
Добавлено через 39 секунд
в 9 случаях из 10 можно загрузить всю таблицу
0
 Аватар для Midian
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690
06.08.2014, 18:12  [ТС]
Это не то, разобрался сам...
C#
1
dataGridViewSectionData.DataSource = context.SectionDataUmcViews.SqlQuery("Select * From SectionDataUmcView Where [" + comboBoxSearch.Text + "] = " + comboBoxSearchItem.Text + "").ToList();
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
06.08.2014, 18:15
Midian, а напиши во второй комбобокс выбрав int тип(без кавычек):
"0; Drop table SectionDataUmcView"
и если не ошибаюсь у тебя будет ошибка при типе dateTime
0
 Аватар для Midian
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690
06.08.2014, 18:27  [ТС]
Все прекрасно работает, как с датой, так и с типом int:
C#
1
2
3
4
using (var context = new UMCEntities())
            {
                dataGridViewSectionData.DataSource = context.SectionDataUmcViews.SqlQuery("Select * From SectionDataUmcView Where [" + comboBoxSearch.Text + "] = '" + comboBoxSearchItem.Text + "'").ToList();
            }
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
07.08.2014, 16:09
Midian, а мое волшебное значение "0; Drop table SectionDataUmcView" нашло в таблице?
0
 Аватар для Midian
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690
07.08.2014, 22:55  [ТС]
Learx, А зачем не дропать таблицу? Я что то не понял, я использую Entity Framework и мне нужно было достать данные используя старый добрый ADO, только на уровне Linq, вот и все, что я и сделал.... считаю что тема закрыта....
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
08.08.2014, 04:45
Midian, это как бы был намек на то, чтобы вы пользовались параметризованными запросами, а не напрямую подставляли значения в запрос пихали.
0
 Аватар для Midian
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690
08.08.2014, 10:18  [ТС]
kodv, Ну если вы не в курсе, то Linq запросы защищены от SQL инъекций. Об этом думать не нужно.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
08.08.2014, 11:02
Цитата Сообщение от Midian Посмотреть сообщение
Ну если вы не в курсе, то Linq запросы защищены от SQL инъекций.
А при чем здесь LINQ? Вы напрямую выполняете запрос на базе данных. То, что где то в другом месте в программе вы выполняете запросы через LINQ, никак не влияет на безопасность выполнения прямого запроса в этом месте.
0
 Аватар для Midian
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690
08.08.2014, 14:54  [ТС]
kodv, Ну даже если и так, то мои comboBox защищены от ввода данных, там стоит свойство ReadOnly
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
08.08.2014, 15:43
Да мне, если честно, все равно. Возможно есть у пользователя возможность сделать SQL-инъекцию, а может и нет (вы говорите, что через жопу, но защитили свою БД от инъекций). Своим ответом я вам не пытался что то доказать. Я лишь ответил вам на эту фразу.
Цитата Сообщение от Midian Посмотреть сообщение
А зачем не дропать таблицу? Я что то не понял
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2014, 15:43
Помогаю со студенческими работами здесь

Сортировка по выбранному полю
Здравствуйте Мне нужно что бы при нажатии на название поля(колонки) проходила сортировка по этому полю. Не только числа, но и имена,...

Сортировка по выбранному полю DbGrid
У меня есть 3 Radiobutton. Подскажите, как сделать сортировку по выбранному одному из полей.

Кака сделать поиск по полю
Здравствуйте. В таблице &quot;Товары&quot; в поле &quot;Описание&quot; указано описание товара как сделать чтобы запрос при вводе любого куска из этого...

Сортировка массива структур по выбранному полю с помощью алгоритма std::sort
Не знаю, как правильно передать функцию сравнения в std::sort. Кроме того в моей структуре есть поля одного типа, мне кажется будет...

Как сделать поиск по всем столбцам в таблице?
Написал простую программу, которая выводит таблицию из базы данных dbm, сделал поиск в программе, но этот поиск ведется почему-то только в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru