Member 13647464 Ответов: 1

Не удается сохранить данные в базе данных в ASP.NET с mysql


в одной таблице сотрудников есть 3 поля Id,name и department, а Id-это первичный ключ. А в другой таблице имя-это EmployeeSalary,и у него также есть 3 поля Id, EmpId и зарплата, а EmpId должен быть внешним ключом. всякий раз, когда я запускаю программу в это время, я получаю ошибку "SQLEXCEPTION unhandled by user". А точка останова отображается на объекте SQLCOMMAND. А это и есть запрос insert.

Что я уже пробовал:

String query = "вставить в dbo.Employee(Name, department) значения(@Name, @Department)";
SqlCommand cmd = new SqlCommand(query,con);
cmd.параметры.AddWithValue ("@Name", txtname.Текст);
cmd.параметры.AddWithValue("@Department", DropDownList1.Text);
УМК.CommandText = запрос;
УМК.Подключение = кон;
УМК.Метод executenonquery();
против.Закрывать();

против.Открыть();
Строка secondQuery = "вставить в dbo.EmployeeSalary(зарплата) значения(@зарплата)";
Sqlcommand, который secondCmd = новая команда sqlcommand(secondQuery,кон);
secondCmd.параметры.AddWithValue("@зарплата", txtsalary.Text);
secondCmd.CommandText = secondQuery;
secondCmd.Подключение = кон;
secondCmd.Метод executenonquery();
против.Закрывать();

phil.o

Дикое предположение: ваш столбец зарплаты-это тип числа, и вы пытаетесь присвоить ему строковое значение. Но, не зная, какая строка вызывает исключение, и не имея сообщения об исключении, довольно трудно найти проблему. Пожалуйста, будьте более точны в отношении сообщения об ошибке, которое вы получаете.

1 Ответов

Рейтинг:
0

Bryian Tan

Здесь не хватает подробностей. Я предполагаю, что Id из первой таблицы-это идентификатор сотрудника, вторая таблица ожидает идентификатор сотрудника (empId) во время вставки. Но кодекс предусматривает только зарплату. Первый запрос должен вставлять и возвращать идентификатор с помощью метода ExecuteScalar, а второй запрос должен использовать идентификатор в качестве EmpId.

Вот пример кода о том, как получить последний идентификатор вставки.
Возврат последнего идентификатора (IDENTITY) в строке вставки VB.NET MySQL - переполнение стека[^]