등록 양식을 만들려고합니다. 이 코드는 사용자 이름이 중복되면 등록을 중지해야합니다.SQL Server 사용자 테이블에 사용자가 있는지 확인하십시오.
실제로이 내용을이 사본에 복사했습니다. answer는 독자적으로 수정하려고 했으므로 어떻게 작동 하는지를 알 수있었습니다.
private void register_user()
{
con.Open();
bool exist = false;
// Command that checks if username exist
cmd = new SqlCommand(@"SELECT COUNT(*) FROM users1 WHERE Username = '@username'", con);
cmd.Parameters.AddWithValue("@username", txtRegUsername.Text);
exist = (int)cmd.ExecuteScalar() > 0;
// If user exist gives error
if (exist == true)
lblResults.Text = "Username already exist!";
else
{
cmd = new SqlCommand(@"INSERT INTO users1 (Fname, Lname, Mname,
Username, Password, email, user_type)
VALUES (@first_name, @last_name, @middle_name,
@username, @password, @email, @user_type)", con);
cmd.Parameters.AddWithValue("@first_name", txtFname.Text);
cmd.Parameters.AddWithValue("@last_name", txtLname.Text);
cmd.Parameters.AddWithValue("@middle_name", txtMi.Text);
cmd.Parameters.AddWithValue("@username", txtRegUsername.Text);
cmd.Parameters.AddWithValue("@password", txtRegPassword.Text);
cmd.Parameters.AddWithValue("@email", txtEmail.Text);
cmd.Parameters.AddWithValue("@user_type", "user");
cmd.ExecuteNonQuery();
}
con.Close();
}
내 문제는 내 코드가 존재 이름의 등록을 수 있다는 것입니다 :
여기 내 코드입니다. 전반적인 작업. 대신
SELECT COUNT(*) FROM users1 WHERE Username = '@username'
사용
SELECT COUNT(*) FROM users1 WHERE Username = @username
의
사용자 이름 (데이터베이스)에 고유 한 제한 조건을 설정하고 예외를 catch 할 수 있습니다. – levi
[AddWithValue()를 이미 사용 중지 할 수 있습니까?] (http://blogs.msmvps.com/jcoehoorn/blog/) 체크 아웃해야합니다. (예 : 2014/05/12/can-we-stop-using-addwithvalue-already /)'.AddWithValue()'사용을 중지하면 예상치 못한 놀라운 결과를 초래할 수 있습니다 ... –