Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 59
1

Ошибка при запросе в базу данных

04.07.2018, 20:55. Показов 508. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
При выполнении данного отрезка кода выдаёт ошибку: Data type mismatch in criteria expression (жалуется на строку myCommand.ExecuteNonQuery().
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
myCommand.Connection = con;
            myCommand.CommandText = "INSERT INTO Талон (Код, Врач, Пациент, День, Время, Кабинет) VALUES (@kod, @familiya, @pacient, @den, @time, @kabinet)";
            con.Open();
 
            OleDbParameter param = new OleDbParameter();
            param = myCommand.Parameters.Add(new OleDbParameter("@kod", OleDbType.Integer, 20));
            param.Direction = ParameterDirection.Input;
            param.Value = kod;
 
            param = myCommand.Parameters.Add(new OleDbParameter("@familiya", OleDbType.VarChar, 20));
            param.Direction = ParameterDirection.Input;
            param.Value = familiya;
 
            param = myCommand.Parameters.Add(new OleDbParameter("@pacient", OleDbType.VarChar, 20));
            param.Direction = ParameterDirection.Input;
            param.Value = pacient;
 
            param = myCommand.Parameters.Add(new OleDbParameter("@den", OleDbType.VarChar, 20));
            param.Direction = ParameterDirection.Input;
            param.Value = den;
 
            param = myCommand.Parameters.Add(new OleDbParameter("@time", OleDbType.VarChar, 20));
            param.Direction = ParameterDirection.Input;
            param.Value = time;
 
            param = myCommand.Parameters.Add(new OleDbParameter("@kabinet", OleDbType.VarChar, 20));
            param.Direction = ParameterDirection.Input;
            param.Value = kabinet;
 
            myCommand.ExecuteNonQuery();
            con.Close();
У всех переменных, кроме kod, тип string (у переменной kod - integer). В чём здесь ошибка?

Добавлено через 3 часа 58 минут
Нашёл решение: использовал данный код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
OleDbConnection oleDBConn = new OleDbConnection(ConnS);
            string sqlQuerry = "INSERT INTO Талон (Код, Врач, Пациент, День, Время, Кабинет) VALUES (@kod, @familiya, @pacient, @den, @time, @kabinet)";
            OleDbCommand cmd = new OleDbCommand(sqlQuerry, oleDBConn);
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.AddWithValue("@kod", kod);
            cmd.Parameters.AddWithValue("@familiya", familiya);
            cmd.Parameters.AddWithValue("@pacient", pacient);
            cmd.Parameters.AddWithValue("@den", den);
            cmd.Parameters.AddWithValue("@time", time);
            cmd.Parameters.AddWithValue("@kabinet", kabinet);
            oleDBConn.Open();
            cmd.ExecuteNonQuery();
            oleDBConn.Close();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.07.2018, 20:55
Ответы с готовыми решениями:

Ошибка при добавлении данных в базу
Здравствуйте) Интересует вопрос, по какой причине может возникнуть ошибка изображенная на скрине? Я...

Ошибка при добавлении данных в базу firebird
Добавляю из трёх листов данные в простенькую базу данных firebird, где всего три поля: ID, NAME и...

Ошибка при добавлении в базу данных, сплиттер и метка на нем
Возникли следующие вопросы: 1. В программеusing System; using System.Collections.Generic; using...

Ошибка при запросе к БД
Имеем в БД столбец с записями типа(varchara): 1/14/99001-ИП 1000/14/99001-ИП 1001/14/99001-ИП...

1
HF
1163 / 749 / 181
Регистрация: 09.09.2011
Сообщений: 2,314
Записей в блоге: 2
04.07.2018, 22:00 2
Помоему вы так и не поняли ошибку.
Цитата Сообщение от vote Посмотреть сообщение
OleDbParameter param = new OleDbParameter();
* * * * * * param = myCommand.Parameters.Add(new OleDbParameter("@kod", OleDbType.Integer, 20));
* * * * * * param.Direction = ParameterDirection.Input;
* * * * * * param.Value = kod;
param = myCommand.Parameters.Add(new OleDbParameter("@familiya", OleDbType.VarChar, 20));
* * * * * * param.Direction = ParameterDirection.Input;
* * * * * * param.Value = familiya;
...
параметры создаёте, но в список не добавляете. Не хватает работы с коллекцией параметров.
OleDbParameterCollection.Add Method (OleDbParameter)

Цитата Сообщение от vote Посмотреть сообщение
Нашёл решение: использовал данный код
Этим вариантом пользуются чаще. Он проще и понятнее.
0
04.07.2018, 22:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2018, 22:00
Помогаю со студенческими работами здесь

Ошибка при запросе к БД
Столкнулась с странной ошибкой, о которой даже Яндекс не знает.. Дополнительные сведения: Указанный...

Ошибка при запросе к БД
Здравствуйте, делаю запрос к БД MSSQL CE 4.0 Появляется ошибка: Could not load file or assembly...

ошибка при запросе в ACCESSe
пишу такой запрос SELECT student_id FROM students INNER JOIN marks ON...

Ошибка при запросе на обновление
Здравствуйте. Возникает проблема при выполнении запроса на обновление. UPDATE mytable SET ......


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru