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

Запрос Сравнение textbox с ячейкой краткой даты таблицы в Access

23.03.2025, 21:06. Показов 704. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста. Пользователь на форме в с# вводит в поле textbox дату, нужно сравнить эту дату со столбцом кратких дат в Аксесс

Делаю так:

C#
1
2
3
  DateTime Fam1 = DateTime.ParseExact(textBox1.Text, "dd/MM/yyyy", null);
  dataGridView1.Visible = true;
  string commandText = "SELECT *FROM Талоны WHERE ([дата_приема]='" + Fam1.Date + "');";

Выдает ошибку "Несоответствие типов данных в выражении условия отбора "
Подскажите пожалуйста
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2025, 21:06
Ответы с готовыми решениями:

Хочу обновить ячейку с кратким форматом даты в Access, но 'произошла систаксическая ошибка'.
Хочу обновить ячейку с кратким форматом даты в Access, но 'произошла систаксическая ошибка'. А запрос был такой: SQL = 'UPDATE...

Краткая форма записи сравнения в присвоении
Здравствуйте. Можно ли сразу в присвоении выполнить проверку типа: if (a != null) b =a; else b = 1; ?

Сравнение значений динамически заданных textBox, и отображение текста в многострочном Textbox
Часть первая. Дано: динамически создаваемые TextBox'ы TextBox tb = new TextBox; for (int i=0 ; i < answer_count; i++) ...

14
 Аватар для Andrey-MSK
3187 / 2081 / 378
Регистрация: 14.08.2018
Сообщений: 6,920
Записей в блоге: 4
24.03.2025, 08:46
Цитата Сообщение от Vita7881 Посмотреть сообщение
Подскажите пожалуйста
Используйте параметры в запросе и тогда 99% ошибок такого плана просто не возникнут.
0
6 / 6 / 0
Регистрация: 07.10.2009
Сообщений: 164
24.03.2025, 09:23  [ТС]
спасибо, но что-то не нашла ответа на свой вопрос
0
 Аватар для Andrey-MSK
3187 / 2081 / 378
Регистрация: 14.08.2018
Сообщений: 6,920
Записей в блоге: 4
24.03.2025, 09:37
Цитата Сообщение от Vita7881 Посмотреть сообщение
но что-то не нашла ответа на свой вопрос
Ответ - использовать параметры.
C#
1
2
3
4
5
6
7
8
9
10
11
12
string commandText = "SELECT *FROM Талоны WHERE ([дата_приема]=?);";
 
OleDBParameter pDate = new OleDbParameter
{
    ParameterName = "@pDate",
    Value = Fam1.Date, // Здесь значение должно быть типа DateTime
    OleDbType = OleDbType.Date,
    Direction = ParameterDirection.Input
}
command.AddParameters(pDate);
 
// Далее выполняем запрос
Добавлено через 2 минуты
Vita7881, И если параметров много, то объявляются они в порядке следования знаков ? в запросе.
Поставщик данных OLE DB.NET Framework использует позиционные параметры, помеченные вопросительным знаком (?), вместо именованных параметров.
0
6 / 6 / 0
Регистрация: 07.10.2009
Сообщений: 164
24.03.2025, 09:46  [ТС]
выдает ошибку на OleDBParameter
0
 Аватар для Andrey-MSK
3187 / 2081 / 378
Регистрация: 14.08.2018
Сообщений: 6,920
Записей в блоге: 4
24.03.2025, 09:55
Vita7881,
C#
1
using System.Data.OleDb;
Добавлено через 2 минуты
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
OleDBParameter
Вот так пишется
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
OleDbParameter
Ошибся, писал тут.
0
6 / 6 / 0
Регистрация: 07.10.2009
Сообщений: 164
24.03.2025, 10:03  [ТС]
спасибо, выдает ошибку на command
0
 Аватар для Andrey-MSK
3187 / 2081 / 378
Регистрация: 14.08.2018
Сообщений: 6,920
Записей в блоге: 4
24.03.2025, 10:11
Цитата Сообщение от Vita7881 Посмотреть сообщение
выдает ошибку на command
Это я написал своё название переменной команды, какое у вас - я без понятия, вы ведь не полностью метод показали...
0
6 / 6 / 0
Регистрация: 07.10.2009
Сообщений: 164
24.03.2025, 10:34  [ТС]
спасибо, но что-то не пойму, что вместо command вставить
вот весь код
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
            DateTime Fam1 = DateTime.ParseExact(textBox1.Text, "dd/MM/yyyy", null);
 
            dataGridView1.Visible = true;
 
            string commandText = "SELECT *FROM Талоны WHERE ([дата_приема]=?);";
 
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\poliklinika2.mdb";
 
            OleDbParameter pDate = new OleDbParameter
            {
                ParameterName = "@pDate",
                Value = Fam1.Date, // Здесь значение должно быть типа DateTime
                OleDbType = OleDbType.Date,
                Direction = ParameterDirection.Input
            };
//command.AddParameters(pDate);
 
            OleDbConnection conn = new OleDbConnection(connectionString);
            OleDbCommand mycommand = new OleDbCommand();
            mycommand.Connection = conn;
            mycommand.CommandText = commandText;
 
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
            dataAdapter.SelectCommand = mycommand;
            DataSet dsТаблица2 = new DataSet();
            DataTable dtТаблица2 = dsТаблица2.Tables.Add("Талоны");
            DataSet dsTab = new System.Data.DataSet();
            dsTab.DataSetName = "NewDataSet";
            DataColumn dcTId = dtТаблица2.Columns.Add("Код_талона", typeof(Int32));
            dcTId.Unique = true;
            DataColumn dcFam1 = dtТаблица2.Columns.Add("код_пациента", typeof(Int32));
            DataColumn dcsnilc = dtТаблица2.Columns.Add("код_врача", typeof(Int32));
            conn.Open();
            mycommand.ExecuteNonQuery();
            dataAdapter.Fill(dsТаблица2.Tables["Талоны"]);
            conn.Close();
            dataGridView1.DataSource = dsТаблица2.Tables["Талоны"].DefaultView;
0
 Аватар для Andrey-MSK
3187 / 2081 / 378
Регистрация: 14.08.2018
Сообщений: 6,920
Записей в блоге: 4
24.03.2025, 10:35
Цитата Сообщение от Vita7881 Посмотреть сообщение
но что-то не пойму, что вместо command вставить
Вот это
Цитата Сообщение от Vita7881 Посмотреть сообщение
mycommand
0
6 / 6 / 0
Регистрация: 07.10.2009
Сообщений: 164
24.03.2025, 10:46  [ТС]
пробовала, пишет OleDbCommand не содержит определения AddParameters
0
 Аватар для Andrey-MSK
3187 / 2081 / 378
Регистрация: 14.08.2018
Сообщений: 6,920
Записей в блоге: 4
24.03.2025, 10:51
Лучший ответ Сообщение было отмечено Vita7881 как решение

Решение

Цитата Сообщение от Vita7881 Посмотреть сообщение
пишет OleDbCommand не содержит определения AddParameters
C#
1
command.Parameters.Add(pDate);
Писал тут, ошибся. Не копируйте бездумно, почитайте документацию по параметрам...
1
6 / 6 / 0
Регистрация: 07.10.2009
Сообщений: 164
24.03.2025, 16:38  [ТС]
Заработало, ОГРОМНЕЙШЕЕ ВАМ спасибо !!!))) и что уделили свое время)))

Добавлено через 5 часов 45 минут
А не подскажите пожалуйста, как такой запрос с SQL Аксесс можно реализовать на форме в С#?
Код талона вводится в textBox1. Заранее спасибо

SQL
1
2
3
SELECT Талоны.Код_талона, Пациенты.Фамилия, Талоны.дата_приема, Талоны.время, Врачи.Фамилия, Должность.должность
FROM Пациенты INNER JOIN (Должность INNER JOIN (Врачи INNER JOIN Талоны ON Врачи.Код_врача = Талоны.код_врача) ON Должность.Код_должности = Врачи.код_должности) ON Пациенты.Код_пациента = Талоны.код_пациента
WHERE (((Талоны.Код_талона)=[Введите код талона]));
0
 Аватар для Andrey-MSK
3187 / 2081 / 378
Регистрация: 14.08.2018
Сообщений: 6,920
Записей в блоге: 4
24.03.2025, 16:46
Цитата Сообщение от Vita7881 Посмотреть сообщение
SQL
1
WHERE (((Талоны.Код_талона)=[Введите код талона]));
SQL
1
WHERE (((Талоны.Код_талона)=?));
Потом в команду добавить параметр со значением из textBox1 с преобразованием к нужному типу данных таблицы БД.
0
6 / 6 / 0
Регистрация: 07.10.2009
Сообщений: 164
24.03.2025, 17:24  [ТС]
спасибо), а как мне на форму вывести результат выполнения запроса в dataGridView1? ведь получается разные колонки с разных таблиц?

Добавлено через 1 минуту
если из одной таблицы я так вывожу в dataGridView1
а из разных тогда как будет?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
dataAdapter.SelectCommand = mycommand;
DataSet dsТаблица1 = new DataSet();
DataTable dtТаблица1 = dsТаблица1.Tables.Add("Талоны");
DataSet dsTab = new System.Data.DataSet();
dsTab.DataSetName = "NewDataSet";
DataColumn dcTId = dtТаблица1.Columns.Add("Код_талона", typeof(Int32));
dcTId.Unique = true;
DataColumn dcFam = dtТаблица1.Columns.Add("Код_пациента", typeof(Int32));
DataColumn dcdate = dtТаблица1.Columns.Add("код_врача", typeof(Int32));
DataColumn dctel = dtТаблица1.Columns.Add("дата_приема");
DataColumn dcmed = dtТаблица1.Columns.Add("время");
conn.Open();
mycommand.ExecuteNonQuery();
dataAdapter.Fill(dsТаблица1.Tables["Талоны"]);
conn.Close();
dataGridView1.DataSource = dsТаблица1.Tables["Талоны"].DefaultView;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2025, 17:24
Помогаю со студенческими работами здесь

Сравнение текста введенного в Textbox по name. При этом Textbox создан динамически
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Сравнение введённой даты и даты из таблицы БД
Не получается сравнить даты. Пробовал несколько способов, программа работает, но условие со сравнением тупо игнорируется. string...

Сравнение данных: первой буквы из одной ячейки DGV с содержимым другой ячейки
Здравствуйте, необходимо сравнить значения и выполнить над ними какие либо действия, если они равны string slovo =...

Редактирование ячейки datagridview по значению textBox (Access)
Как сделать, чтобы можно было отредактировать ячейку бд(аксес) отображаемой в datagridview? Есть таблица с колонками: Номер рейса, пункт...

Сравнить значение в TextBox со значением ячейки БД access (авторизация)
Здравствуйте. Есть БД access(понимаю что не лучший вариант) и форма в WPF. В БД есть таблица с логином и паролем. Не могу понять почему...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Размещения без повторений
VistaSV30 31.05.2025
Код возвращает список вариантов размещений A^{k}_{n}=\frac{n!}{(n-k)!} from itertools import permutations def pwr(k, n): # Размещение без повторений (Placement without repetition) if k. . .
Redis и Node.js с TypeScript - решения для высоконагруженных систем
Reangularity 31.05.2025
Redis (Remote Dictionary Server) — сверхбыстрое хранилище данных в памяти, способное обрабатывать операции за микросекунды. И что особенно важно для нас — с удивительно простым API. А теперь. . .
Unit-тестирование с моками в Go
golander 31.05.2025
Большинство разработчиков предпочитают тестировать код без использования моков. Например, при интеграции с Elasticsearch логичнее запустить контейнер локально и тестировать Go-код непосредственно с. . .
Как работать с PDF в C#
stackOverflow 31.05.2025
Нам приходится сталкиваться с PDF по разным причинам. Генерация счетов, создание отчетов, извлечение данных из загруженных пользователем документов, автоматизация рабочих процесов - это лишь верхушка. . .
Двухбуквенные коды стран в шифровании.
russiannick 31.05.2025
Человечество издревле манила возможность замены сочетаний букв вымышленными символами, делающие сообщение понятным только для посвещенных. Настала пора внести в это свой вклад. Двухбуквенные коды. . .
Мой опыт в исправлении ошибки приложения Boinc в части заряда батареи смартфона.
Programma_Boinc 31.05.2025
Мой опыт в исправлении ошибки приложения Boinc в части заряда батареи смартфона. Хотел бы поделиться опытом в исправлении ошибки приложения в части заряда батареи смартфона. Сразу скажу, что. . .
Добро пожаловать на конкурс PrimeGrid, посвященный 20-летию PrimeGrid
Programma_Boinc 31.05.2025
Добро пожаловать на конкурс PrimeGrid, посвященный 20-летию PrimeGrid: 5-дневный обобщенный поиск простых чисел Ферма n = 20 с 12 июня 20:20 UTC по 17 июня 20:20 UTC. 12 июня 2005 года. . .
Вероятность в шансы / Шансы в вероятность
VistaSV30 31.05.2025
# Шансы -> Вероятность def Chance_to_Probability(ch): def gcd(a, b): # НОД - нужен для упрощения значений шансов while b != 0: a, b = b, a % b return a. . .
FastAPI и Flask: Отличия, производительность и примеры использования
py-thonny 30.05.2025
Если вы разрабатываете веб-приложения на Python, вы наверняка слышали о Flask и FastAPI. Эти два фреймворка часто становятся предметом жарких дискуссий в сообществе разработчиков. И не без основания. . .
ML.NET и TensorFlow.NET: Умные приложения на C# с машинным обучением
stackOverflow 30.05.2025
Еще совсем недавно, когда речь заходила о машинном обучении, C# разработчики обреченно вздыхали и тянулись к Python. Мир искуственного интеллекта словно был огражден невидимым забором с табличкой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »