我有一個登錄頁面,用戶有ID和ID是表中的主鍵。我也有一個管理員帳戶,管理員可以創建用戶。但是,當我用現有的ID創建用戶帳戶時,網頁崩潰。我想處理這種情況並給出警告,指出此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
不是一個直接的答案,但請,請學習和**使用** paramterized查詢,**尤其是**,因爲你正在開發一個Web應用程序。你的代碼是SQL Server注入的開放源代碼。 – Tim
爲了更直接地回答您的問題,我會使用存儲過程來執行插入操作。 SP將檢查一個現有的ID,如果它發現一個返回的東西指示ID已經存在,否則它會完成插入。 – Tim
@Tim我已經多次聽到同樣的事情,你可以請寫參數化查詢相同的查詢,以便我可以理解如何使用它? – yrazlik