Где ошибка в SQL - запросе? - MySQL
Формулировка задачи:
...
query = "insert into servise.orders (receipt_date, mulfunction, mark, payment_amount, owners_id, devices_id, state_id) values('" + Receipt_date + "','"
+ Mulfunction + "','" + Mark + "','" + Sum
+ "','" + id_owner + "','" + WorkToDivices() + "','" + SearchStartState() + "'); SELECT LAST_INSERT_ID()";
cmd = new MySqlCommand(query, connection);
connection.Open();
id_order = (int)cmd.ExecuteScalar();//тут выводит Exeption: заданное приведение является недопустимым.
...id_order = (int)cmd.ExecuteScalar();
Решение задачи: «Где ошибка в SQL - запросе?»
textual
Листинг программы
id_order = (int)(ulong)cmd.ExecuteScalar();
Объяснение кода листинга программы
- В данном коде выполняется SQL-запрос.
- Результатом выполнения запроса является единственное значение, которое сохраняется в переменной id_order.
- Переменная id_order имеет тип данных int, что предполагает, что в нее будет сохранено целочисленное значение.
- Перед выполнением запроса используется метод ExecuteScalar, который получает первый результат на выходе и возвращает его как объект DataReader.
- Для получения целочисленного значения используется приведение типа данных (int)(ulong)cmd.ExecuteScalar().
- Значение, полученное из DataReader, приводится к типу ulong, что предполагает, что оно может быть больше максимального значения int.
- Затем значение приводится к типу int, что предполагает, что оно не будет превышать максимального значения int.
- Результат приведения типов сохраняется в переменной id_order.