С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/47: Рейтинг темы: голосов - 47, средняя оценка - 4.79
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366

Сделать выборку в DataGridView по маске из TextBox

13.12.2012, 14:44. Показов 9191. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема с поиском пишу так
C#
1
2
3
4
 private void textBox7_TextChanged(object sender, EventArgs e)
        {
            dataGridView1.DataSource = Zayavka("SELECT * FROM Заявки Where Инжинер Like% '" + textBox7.Text + "'");
        }
выдает ошибку
C#
1
Ошибка синтаксиса в выражении запроса 'Инжинер Like% '1''.
где 1 это то что начал искать
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2012, 14:44
Ответы с готовыми решениями:

Сделать выборку из БД по маске. Ввод искомого - в TextBox
привет всем! есть такой код public Form2() { string CommandText, ConnectionString; ...

Сделать выборку данных из одной колонки в DataGridView и скопировать их в Textbox
Привет всем любителям и профессионалам программирования. Сам занимаюсь программированием не так давно, вот дошли руки и до таблиц...

SQL Server 2008: как сделать выборку по маске
.RecordSource = "SELECT * FROM Data WHERE Data. Like '*" & Text1.Text & "*' " Не срабатывает, находит только по полной введенной...

25
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
13.12.2012, 14:51
C#
1
dataGridView1.DataSource = Zayavka("SELECT * FROM Заявки Where Инжинер Like '%" + textBox7.Text + "'");
Вам бы SQL для начала выучить...
0
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
13.12.2012, 14:59  [ТС]
Да я так и сделал, все заработало, только в Дата Грид Вью не отображается результат( Как этого добиться?
Пишу вот так
C#
1
2
dataGridView1.DataSource = Zayavka("SELECT Инжинер FROM Заявки Where Телефон Like'% " + textBox7.Text + "'");
            dataGridView1.DataSource = Zayavka().Tables["Заявки"];
отображает все как было(
0
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
13.12.2012, 19:01  [ТС]
Пробовал сделать с помощью запроса
C#
1
2
3
4
5
6
 private void button2_Click(object sender, EventArgs e)
        {
   
         dataGridView1.DataSource = Zayavka("SELECT Инжинер FROM Заявки Where Телефон Like'% " + textBox7.Text + "'");
                dataGridView1.DataSource = Zayavka().Tables["Заявки"];
        }
но ничего не получилось, ввожу, нажимаю кнопку, а оно не выводит ни ошибок ни строк какие я ищу.

Вот мое подключение к базе
C#
1
2
3
4
5
6
7
8
9
10
11
12
public DataSet Zayavka(string command = "SELECT * FROM Заявки")
        {
 
            string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Заявки.mdb;";
            OleDbConnection cnn = new OleDbConnection(strConn);
            cnn.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter(command, cnn);
            DataSet ds = new DataSet();
            adapter.Fill(ds, "Заявки");
            cnn.Close();
            return ds;
        }
Подскажите как это организовать?

Добавлено через 1 час 22 минуты
Попробовал прописать так
C#
1
2
3
4
5
6
7
8
9
10
private void button2_Click(object sender, EventArgs e)
        {
            string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Заявки.mdb;";
            OleDbConnection conMain = new OleDbConnection(strConn);
            OleDbCommand comUpdate = new OleDbCommand("SELECT Инжинер FROM Заявки Where Телефон Like='%" + textBox7.Text + "'", conMain);
            conMain.Open();
            comUpdate.ExecuteNonQuery();
            conMain.Close();
 
        }
Но у меня выдает ошибку
C#
1
Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Телефон Like='%21''.
Все пересмотрел вроде как правильно

Добавлено через 22 минуты
и так пробовал
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   private void button2_Click(object sender, EventArgs e)
        {
            string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Заявки.mdb;";
            OleDbConnection conMain = new OleDbConnection(strConn);
            OleDbCommand command = new OleDbCommand("SELECT Инжинер FROM Заявки Where Телефон Like='%@Tel'", conMain);
            OleDbParameter param = new OleDbParameter();
            param.ParameterName = "@Tel";
            param.Value = textBox7.Text;
            command.Parameters.Add(param);
            //comUpdate.Parameters.Add("@tel", OleDbType.VarChar, 50).Value = textBox7.Text;
            conMain.Open();
            command.ExecuteNonQuery();
            conMain.Close();
        }
Ну подскажите же кто-нибудь что не так!!!

Добавлено через 1 час 8 минут
Как организовать поиск в DataGridView через TextBox??? Хоть наводку дайте!!!

Добавлено через 9 минут
Попробовал еще так
C#
1
2
3
4
5
6
7
8
9
10
11
 for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridView1.Rows[i].Selected = false;
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                    if (dataGridView1.Rows[i].Cells[j].Value != null)
                        if (dataGridView1.Rows[i].Cells[j].Value.ToString().Contains(textBox7.Text))
                        {
                            dataGridView1.Rows[i].Selected = true;
                            break;
                        }
            }
но это только выделяет те строки в которых нашло совпадение, а как оставить только те строки там где нашлись совпадения без выделения?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
13.12.2012, 19:45
Дополню предыдущего оратора. Посоветую вам еще и C# тоже подучить. В начальных вариантах, где данные в гриде не менялись ... zayavka(), как я понял, возвращает набор без фильтра, а если передать в эту функцию ваш запрос, то возвратится DataSet, сформированный по вашему запросу. Саначала вы формируете DataSet по фильтру и цепляете его к DataGridView, а потом формируете уже DataSet без фильтра, и цепляется из этого DataSet'а таблица "Заявки". В общем, все работает правильно, в соответствии с тем, как вы написали. Попробуйте написать все таки так:
C#
1
taGridView1.DataSource = Zayavka("SELECT Инжинер FROM Заявки Where Телефон Like'% " + textBox7.Text + "'").Tables["Заявки"];
Что касается последних примеров, то, во-первых, вы не меняете набор данных, который привязан к DataGridView, во-вторых, сочитаете метод C# ExecuteNonQuery (Выполняет команду, но не возвращает набор данных) и команду SQL SELECT (выбирает набор данных), которые в сочетании становятся бессмысленными. Для команды SELECT используется метод Execute.
Ну и последнее
Цитата Сообщение от Mcr Посмотреть сообщение
Код C#1
Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Телефон Like='%21''.
в SQL знак "=" и ключевое слово "Like" не допускаются в выражении одновременно.
Надеюсь, что для вас, после моего поста, что-нибудь прояснится.
2
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
14.12.2012, 02:19  [ТС]
Урааааааа!!! Я сделал)) Спасибо всем, kodv особенно тебе) Хоть кто-то направил в нужное русло))
Кому показать код пишите!!!
1
-5 / 1 / 1
Регистрация: 13.12.2012
Сообщений: 30
14.12.2012, 12:50
Мне можно текст посмотреть который у вас получился? Та же проблема. Можно проект даже скинуть если не жалко.
0
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
14.12.2012, 17:29  [ТС]
В личку пиши!!!
0
-5 / 1 / 1
Регистрация: 13.12.2012
Сообщений: 30
14.12.2012, 17:48
Я не могу пока писать в личку, недавно зарегистрировался на форуме.
0
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
14.12.2012, 17:50  [ТС]
ну напиши свой код как ты делаешь!
0
-5 / 1 / 1
Регистрация: 13.12.2012
Сообщений: 30
14.12.2012, 17:58
Я вообще не понимаю как фильтровать данные в ДатаГридВью по какому то полю. Пробовал так, но он почему то очищается и всё.
C#
1
dataGridView1.DataSource = myShopDataSet.Tables["Заказы"].DefaultView.RowFilter = "КодСотрудника = '" + textBox1.Text + "'";
0
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
14.12.2012, 18:01  [ТС]
я фильтровал через запрос)
"SELECT * FROM Заявки Where Инжинер ='" + textBox7.Text + "'";
0
-5 / 1 / 1
Регистрация: 13.12.2012
Сообщений: 30
14.12.2012, 18:03
А полный код для одного ДатаГрид Вью можно посмотреть пожалуйста? Не знаю как результат такого запроса отобразить в нём. И куда писать? в обработчик нажатия кнопки?
0
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
14.12.2012, 18:05  [ТС]
у тебя должно быть так
"SELECT * FROM Заказы Where Код Сотрудника ='" + textBox7.Text + "'";
1
-5 / 1 / 1
Регистрация: 13.12.2012
Сообщений: 30
14.12.2012, 18:05
Я понял что так, а куда это писать? И как передать запрос в ДатаГридВью?
0
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
14.12.2012, 18:07  [ТС]
Можешь и в обработчик кнопки а можешь в какой-то другой)
Я сам знаешь сколько литературы перечитал, чтобы нормально все сделать и тебе советую)))
Подключаешься, делай командную строку как я писал
"SELECT * FROM Заказы Where Код Сотрудника ='" + textBox7.Text + "'";
и потом как ты писал только проще
dataGridView1.DataSource = myShopDataSet.Tables["Заказы"];
1
-5 / 1 / 1
Регистрация: 13.12.2012
Сообщений: 30
14.12.2012, 18:09
Спасибо, буду пробовать.
0
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
14.12.2012, 18:11  [ТС]
Если разберешься то дай ответ, мне же интересно)))
0
-5 / 1 / 1
Регистрация: 13.12.2012
Сообщений: 30
14.12.2012, 18:32
Написал такую вещь
C#
1
2
3
4
5
6
7
8
9
10
11
12
using (var connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\Алексей\\Desktop\\MyShop.mdb"))
            {
                connection.Open();
                using (OleDbCommand command = connection.CreateCommand())
                {
                    command.CommandText =
            "SELECT * FROM Заказы Where Код Сотрудника ='" + textBox1.Text + "'";
                    dataGridView1.DataSource = myShopDataSet.Tables["Заказы"];
                    command.ExecuteNonQuery();
                }
                connection.Close();
            }
И выдаёт исключение:
Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Код Сотрудника ='1''.
0
10 / 10 / 3
Регистрация: 30.01.2012
Сообщений: 366
14.12.2012, 18:36  [ТС]
через адаптер пробуй, должно получиться))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2012, 18:36
Помогаю со студенческими работами здесь

Как сделать запись в TextBox по маске в VB6
Как сделать запись в TextBox по маске (00.00.0000)в VB6. Так, чтобы во время записи текста он автоматически вставлял разделительные знаки.

Сделать выборку колонок из DataGridView
Очень нужна помощь в задании. Есть на форме DataGridView ,в которую считываются данные из базы данных. мне нужно, чтобы пользователь мог...

Как сделать выборку из БД и отобразить данные в DataGridView
Здравствуйте. Разбирался с DataGridView, возникло несколько вопросов. 1. Подскажите пожалуйста, как сделать так, чтобы на этот элемент...

Как сделать фильтр по маске в DataGridView, если данные берутся из txt файла
Задача в том, чтобы реализовать динамический поиск по datagridview. Если считывать данные из xml файла, то проблем нет, код приведенный...

Подскажите, как сделать выборку таблиц из combobox в DataGridView
Имеется 7 таблиц в SQL Server, 1 combobox, где есть выбор данных таблиц. Нужно, чтобы в DataGridView подгружалась таблица, выбранная в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru