먼저 웹 사이트에 등록한 다음 사용자 이름과 암호를 사용하여 개인 그룹에 가입 할 수 있습니다. 문제는 내가 이미 가입 한 그룹에 삽입하려고하면 중복 된 레코드가 내 테이블에 나타납니다.테이블에서 중복 레코드 피하기 asp.net
회원 테이블 (MemberId-PK, 사용자 이름 등), 그룹 테이블 지정 (MemberId - FK), (GroupId - FK) 및 그룹 (GroupId - PK), 이름, 스포츠) 표.
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Tom\Documents\BIS\4th Year\FYP\FYP\Back-up\test2\FitnessForYou V1-08.01\FitnessForYou\FitnessForYou\App_Data\MembersData.mdf;Integrated Security=True");
con.Open();
SqlCommand cmd2 = new SqlCommand("select COUNT(*)FROM Groups WHERE GroupName='" + txtGroupName.Text + "' and Password='" + txtPassword.Text + "'");
cmd2.Connection = con;
int OBJ = Convert.ToInt32(cmd2.ExecuteScalar());
if (OBJ > 0)
{
con.Close();
con.Open();
cmd2.CommandText = "Insert into AssignGroups(MemberId,GroupId) Select Members.MemberId, Groups.GroupId From Members, Groups Where Members.Username= '" + lblRegistered.Text + "' And Groups.GroupName= '" + txtGroupName.Text + "'";
Session["GroupName"] = txtGroupName.Text;
cmd2.ExecuteNonQuery();
cmd2.Clone();
Response.Redirect("GroupMembers.aspx");
}
else
{
lblError.Text = "Invalid username or password";
this.lblError.ForeColor = Color.Red;
}
con.Close();
}
이 코드가 중복이 아닌지 여부를 tabeo로 기록을 삽입 :
여기 내 코드입니다. 데이터베이스를 검사하여 이미 회원인지 확인하고 다시 레코드를 삽입하지 않고 프롬프트를 제공 할 수있는 방법은 무엇입니까?
감사합니다.
SQL 인젝션 취약점이 있습니다. – SLaks
** 일반 텍스트로 암호를 저장하지 마십시오! ** – SLaks
보안은 ** 어렵습니다 **. 바퀴를 재발 명하지 마십시오. 기존의 입증 된 인증 시스템을 사용해야합니다. – SLaks