У меня есть страница входа, у пользователей есть идентификаторы, а ID - первичный ключ в таблице. У меня также есть учетная запись администратора, и администратор может создавать пользователей. Но когда я создаю учетную запись пользователя с существующим идентификатором, веб-страница выходит из строя. Я хочу обработать эту ситуацию и дать предупреждение о том, что этот идентификатор существует и не может быть создан. Вот мой код:Как справиться с нарушением ограничений первичного ключа в asp.net?
public void CreateStudent(int ID, String status, String email, String firstName, String lastName, String password, String level, String program)
{
SqlConnection con = new SqlConnection(GetConnectionString());
string query1 = "insert into StudentTable(Name,Surname,ID,email,level,program,status,password,Type) values(@firstName,@lastName,@ID,@email,@level,@program,@status,@password,'Student')";
SqlCommand command = new SqlCommand(query1,con);
command.Parameters.AddWithValue("@firstName", firstName);
command.Parameters.AddWithValue("@lastName", lastName);
command.Parameters.AddWithValue("@ID", ID);
command.Parameters.AddWithValue("@email", email);
command.Parameters.AddWithValue("@level", level);
command.Parameters.AddWithValue("@program", program);
command.Parameters.AddWithValue("@status", status);
command.Parameters.AddWithValue("@password", password);
int result;
con.Open();
result = command.ExecuteNonQuery();
con.Close();
}
Может ли кто-нибудь помочь мне с этим? Thanls
Непосредственный ответ, пожалуйста, пожалуйста, пожалуйста, изучите и ** используйте ** терминированные запросы **, особенно **, так как вы разрабатываете веб-приложение. Ваш код как есть широко открыт для SQL Injection. – Tim
Чтобы получить более прямой ответ на ваш вопрос, я бы использовал хранимую процедуру для вставки. SP проверит наличие существующего идентификатора, и если он найдет один возвращаемый код, указывающий, что идентификатор уже существует, в противном случае он завершит вставку. – Tim
@ Тит, что я слышал одно и то же много раз, можете ли вы написать тот же запрос, что и параметризованный запрос, чтобы я мог понять, как его использовать? – yrazlik