Полученные данные MySQL отличаются от ожидаемых ⇐ C#
-
Anonymous
Полученные данные MySQL отличаются от ожидаемых
Я использую C# и MySql(myphpadmin) для создания системы инвентаризации, в которой есть функции поиска для получения данных и помещения их в DataGridView. Однако созданная мной функция не работает должным образом, когда я уверен, что мой запрос верен, поскольку я буквально копирую и вставляю ее из запроса myphpadmin.
Ниже приведен код, который я использовал для выполнения запроса и получения данных.
// Поиск транзакции public void searchTransaction (таблица DataGridView, строковый идентификатор, строковый фильтр) { // Подготавливаем строковый запрос conString = String.Format("выберите * из tbl_transactionhistory, где {0}, например @ID", filter); пытаться { // Подключаемся к базе данных cmd = новый MySqlCommand (conString, Connect()); // Добавляем значения в параметры cmd.Parameters.AddWithValue("@ID", "%" + ID + "%"); // Создание экземпляра читателя MySqlDataReader dr = cmd.ExecuteReader(); // Проверка данных если (доктор.Чтение()) { // Создаем носитель для хранения данных из базы данных DataTable dt = новый DataTable(); dt.Load (др); таблица.Источник Данных = ДТ; } еще { table.DataSource = ноль; } } поймать (MySqlException e) { MessageBox.Show(e.Message); } окончательно { con.Закрыть(); } } Таблица в базе данных называется tbl_transactionhistory, а ниже приведены поля и типы
Transaction_No int(11) Cust_No int(11) Cust_Name varChar(255) Product_Name int(6) Цена_Выпущенная десятичная дробь(5,2) Дата Trans_Date Параметр filter в функции принимает только два: Transaction_No и Cust_No
Я попробовал удалить cmd.Parameters.AddWithValue и заменить его буквальной вставкой переменных в conString, но это все равно не работает. Моя теория заключается в том, что запрос сравнивается с Trans_Date, поскольку когда я ввожу цифры 0, 2, 3 в любом порядке; он всегда показывает даты с 2023 годом в Trans_Date. Но я не понимаю почему.
Я использую C# и MySql(myphpadmin) для создания системы инвентаризации, в которой есть функции поиска для получения данных и помещения их в DataGridView. Однако созданная мной функция не работает должным образом, когда я уверен, что мой запрос верен, поскольку я буквально копирую и вставляю ее из запроса myphpadmin.
Ниже приведен код, который я использовал для выполнения запроса и получения данных.
// Поиск транзакции public void searchTransaction (таблица DataGridView, строковый идентификатор, строковый фильтр) { // Подготавливаем строковый запрос conString = String.Format("выберите * из tbl_transactionhistory, где {0}, например @ID", filter); пытаться { // Подключаемся к базе данных cmd = новый MySqlCommand (conString, Connect()); // Добавляем значения в параметры cmd.Parameters.AddWithValue("@ID", "%" + ID + "%"); // Создание экземпляра читателя MySqlDataReader dr = cmd.ExecuteReader(); // Проверка данных если (доктор.Чтение()) { // Создаем носитель для хранения данных из базы данных DataTable dt = новый DataTable(); dt.Load (др); таблица.Источник Данных = ДТ; } еще { table.DataSource = ноль; } } поймать (MySqlException e) { MessageBox.Show(e.Message); } окончательно { con.Закрыть(); } } Таблица в базе данных называется tbl_transactionhistory, а ниже приведены поля и типы
Transaction_No int(11) Cust_No int(11) Cust_Name varChar(255) Product_Name int(6) Цена_Выпущенная десятичная дробь(5,2) Дата Trans_Date Параметр filter в функции принимает только два: Transaction_No и Cust_No
Я попробовал удалить cmd.Parameters.AddWithValue и заменить его буквальной вставкой переменных в conString, но это все равно не работает. Моя теория заключается в том, что запрос сравнивается с Trans_Date, поскольку когда я ввожу цифры 0, 2, 3 в любом порядке; он всегда показывает даты с 2023 годом в Trans_Date. Но я не понимаю почему.
Мобильная версия