Во-первых, я зарегистрируюсь на своем веб-сайте, и тогда я могу присоединиться к частной группе, используя имя пользователя и пароль. Проблема в том, что если я пытаюсь вставить в группу, к которой я уже присоединился, в моей таблице появляется дублирующаяся запись.Избегайте дублирования записей в таблице. Asp.net
Итак, у меня есть таблица участников (MemberId-PK, Username и т. Д.), Таблица присвоения групп (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