Member 13141551 Ответов: 1

{"Выборка ошибка:ошибка преобразования в тип varchar значение 'базы данных' в тип данных int."}


{"Выборка ошибка:ошибка преобразования в тип varchar значение 'базы данных' в тип данных int."}

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

private DataTable GetData()
{
DataTable dt = новый DataTable();
Sqlconnection connection = new SqlConnection ("источник данных=.; начальный каталог=Quiz_system;Интегрированная безопасность=True");
пробовать
{
соединение.Открыть();
Команда sqlcommand программа sqlcmd = новая команда sqlcommand("выберите question_no,вопрос,фп1,фп2,op3 отображается,ор4,correct_ans от tbl_question_bank где course_name='" + lblcorrect.Текст.ToString () + "' и quiz_id='"+lblqid.Текст+"'", соединение);
SqlDataAdapter sqlDa = новый SqlDataAdapter(sqlCmd);
sqlDa. Fill(dt);
}
поймать (системы.Данных.Sqlclient как.Sqlexception исключая)
{
строка msg = " ошибка выборки:";
сообщение += ех.Сообщение;
throw new Exception(msg);
}
наконец
{
соединение.Закрывать();
}
возврат dt;
}

[no name]

Как ты мог со вчерашнего дня забыть, как это правильно делать?
Почему вы вызываете ToString для объекта, который уже является строкой? Есть ли в этом хоть какой-то смысл?
Сообщение об ошибке совершенно ясно. В чем заключается ваш настоящий вопрос?

1 Ответов

Рейтинг:
1

Patrice T

Никогда не создавайте SQL-запрос путем конкатенации с пользовательскими вводами, он называется "SQL-инъекция", он опасен для вашей базы данных и подвержен ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользовательский ввод типа "Брайан О'Коннер" может привести к сбою вашего приложения, то это уязвимость SQL-инъекции.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]