Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64

Отфильтровать данные в dataGridView по дате

10.06.2014, 18:08. Показов 6093. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть казалось бы простая проблема, но увы не могу сообразить как решить ее(
Надо отфильтровать dataGridView, который отображает данные таблицы БД по дате выбранной в dateTimePicker.
Я написал запрос который фильтрует данные, а вот как передать полученный результат в DatagridView:
C#
1
2
3
4
5
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFilename=E:\University\Magistr Work\DATA\SCU.mdf; Integrated Security=True");
                con.Open();
                SqlCommand cmd = new SqlCommand("SELECT Id_result_bez FROM result_b WHERE date = @date", con);
                cmd.Parameters.AddWithValue("@date", dateTimePicker1.Value);
                con.Close();
Как это сделать?
Спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2014, 18:08
Ответы с готовыми решениями:

Как правильно отфильтровать данные в DataGridView?
При нажатии кнопки вызывается функция: private void btnSelect_Click(object sender, EventArgs e) { int nFind = 0; ...

Заполнение dataGridView по дате
Добрый вечер! Требуется, чтобы при запуске dataGridView заполнялось только теми строками, в которых стоит сегодняшняя дата. Полагаю, что в...

Во втором DataGridView отобразить данные, используя значения выбранной строчки первого DataGridView
Доброго времени суток, Ув. Форумчане! Такой вопрос: Во во втором DataGridView отобразить данные используя значения выбранной строчки...

10
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
11.06.2014, 19:41
Почему просто не использовать фильтр таблицы (DefaultView.RowFilter), которая является источником для DataGridView?
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64
12.06.2014, 01:06  [ТС]
Спасибо! Напишите пожалуйста пример кода?

Добавлено через 9 минут
Сделал по найденному примеру, ну чего то в нем не хватает, не работает - хотя ошибок не выдает:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public DataSet ds
        {
            get;
            set;
        }
 
        public DataView dv
        {
            get;
            set;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            DataView dv = new DataView();
            dv.RowFilter = string.Format("date LIKE '%{0}%'", dateTimePicker1.Value);
            dataGridView1.DataSource = dv;
        }
Подскажите что добавить или убрать?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
12.06.2014, 08:03
Цитата Сообщение от SoloIlya Посмотреть сообщение
что добавить?
Добавьте передачу в DataView вашей таблицы при создании. То есть, должно быть так:
C#
1
DataView dv = new DataView(myDataTable);
А то вы все операции производите с пустым DataView. Естетственно, что в гриде у вас ни строки не должно отобразится после такой "фильтрации".
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64
12.06.2014, 10:45  [ТС]
Таблица с которой выбираются данные "result_b".
Пробую вот так:
C#
1
2
3
DataView dv = new DataView(result_b.DataTable);
            dv.RowFilter = string.Format("date LIKE '%{0}%'", dateTimePicker1.Value);
            dataGridView1.DataSource = dv;
Жалуется: Элемент "result_b" не существует в текущем контексте.

Если делаю так:
C#
1
2
3
DataView dv = new DataView(result_bTableAdapter);
            dv.RowFilter = string.Format("date LIKE '%{0}%'", dateTimePicker1.Value);
            dataGridView1.DataSource = dv;
Жалуется: Ошибка 1 Наиболее подходящий перегруженный метод для "System.Data.DataView.DataView(System.Da ta.DataTable)" имеет несколько недопустимых аргументов E:\University\Magistr Work\Program\Social_economic_damage\Soci al_economic_damage\list_result.cs 42 27 Social_economic_damage
Ошибка 2 Аргумент "1": преобразование типа из "Social_economic_damage.SCUDataSetTableA dapters.result_bTableAdapter" в "System.Data.DataTable" невозможно E:\University\Magistr Work\Program\Social_economic_damage\Soci al_economic_damage\list_result.cs 42 40 Social_economic_damage

Помогите встать на верный путь!
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
12.06.2014, 11:22
SoloIlya, скорее всего вы использовали мастера для взаимодействия с источником данных. Таким образом у вас должен на форме лежать типизированый датасет, в котором находится ваша таблица. Точнее сказать сложно, так как по тем скудным кускам кода, которые вы приводите здесь, сложно сказать, что у вас и как называется в проекте.
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64
12.06.2014, 11:27  [ТС]
Код формы выглядит так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace Social_economic_damage
{
    public partial class list_result : Form
    {
        public list_result()
        {
            InitializeComponent();
        }
 
        private void list_result_Load(object sender, EventArgs e)
        {
            
            // TODO: данная строка кода позволяет загрузить данные в таблицу "sCUDataSet.result_b". При необходимости она может быть перемещена или удалена.
            this.result_bTableAdapter.Fill(this.sCUDataSet.result_b);
 
        }
 
        public DataSet ds
        {
            get;
            set;
        }
 
        public DataView dv
        {
            get;
            set;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            DataView dv = new DataView(sCUDataSet.Tables["resul_b"]);
            dv.RowFilter = string.Format("date LIKE '%{0}%'", dateTimePicker1.Value);
            dataGridView1.DataSource = dv;
        }
 
    }
}
Добавлено через 55 секунд
В этом варианте:
C#
1
2
3
DataView dv = new DataView(sCUDataSet.Tables["resul_b"]);
            dv.RowFilter = string.Format("date LIKE '%{0}%'", dateTimePicker1.Value);
            dataGridView1.DataSource = dv;
ошибок нет, но и результат тоже не выводит, что делать не знаю, одна надежда на вас)
0
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64
12.06.2014, 11:37  [ТС]
В этом варианте:
C#
1
2
3
DataView dv = new DataView(sCUDataSet.result_b);
            dv.RowFilter = string.Format("date = '%{0}%'", dateTimePicker1.Value);
            dataGridView1.DataSource = dv;
ругается так
Миниатюры
Отфильтровать данные в dataGridView по дате  
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
12.06.2014, 12:37
SoloIlya, дата может сравниваться только с датой. если после знака = находится не дата, то происходит попытка преобразования в дату. Если попытка не приносит успеха, то появляется ошибка.
Что у вас за знаки процентов вокруг даты? Уберите их нафиг, так как из-за них не получается строку в дату преобоазовать.
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64
12.06.2014, 13:18  [ТС]
Убрал, ошибку больше не выдает. В DataGridView отображаются только название столбцов, а строки пустые, хотя в DateTimePicker выбираю значение которое есть в таблице.
В чем может быть проблема?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
12.06.2014, 13:27
Лучший ответ Сообщение было отмечено SoloIlya как решение

Решение

SoloIlya, возможно, DateTimePicker содержит время, из-за которого не выбирается ни одна строка. Проверьте, что по итогу находится в строке фильтра. Дату без времени можно получить так: dateTimePicker1.Value.Date.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2014, 13:27
Помогаю со студенческими работами здесь

Подставить данные из combobox в DatagridView при создании новой записи в этом DatagridView
Здравствуйте! Возможно я плохо искал, но я искал ответ или наводку на решение. Подскажите пожалуйста: Есть таблица User, записи которой...

Нужно, чтобы при выборе элемента в одном DataGridView отображались связанные данные в другом DataGridView
Есть две связанные таблицы и соответственно два DataGridView, нужно, чтобы при выборе элемента в одном DataGridView отображались связанные...

Как в DataGridView сделать RowFilter только по дню и месяцу в дате?
Задача такая. Есть таблица с информацией о людях, нужно вывести в DataGridView только тех, у кого день рождения в заданном диапазоне. Всё...

Как отфильтровать данные по дате и времени?
Подскажите, как при помощи фильтра выделить диапазон данных по двум полям ‘дата’ и ’время’. Приведенный ниже код отказывается работать,...

Отфильтровать из всех новостей 3 ближайших по дате к заданной дате
Не могу дотумкать, как отфильтровать из всех новостей 3 ближайших по дате к заданной дате. То есть, если у меня есть новости за 02.01,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru