質問: データベースに挿入すると、データが複製されます。データベースに重複エントリを作成しないようにするにはどうすればよいですか?
を使用しないことによる SQL インジェクションの保護/防止について読みました。
texboxt1.text
なので使ってみた
parameters.add()
ただし、エントリは挿入ごとに複製されます。
これはデータベースのイメージです...
これは私のコードです
protected void Button1_Click(object sender, EventArgs e)
{
string username = txtuser.Text;
string firstname = txtfirst.Text;
string lastname = txtlast.Text;
string email = txtemail.Text;
string password = txtpass.Text;
string gender = rbgender.Text;
string nationality = ddcountry.Text;
string Connect_string = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
SqlConnection Connect = new SqlConnection(Connect_string);
Connect.Open();
string pass = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");
SqlCommand Command = new SqlCommand("INSERT INTO [Users] (username, firstname, lastname, email, password, gender, nationality) VALUES (@username, @firstname, @lastname, @email, @password, @gender, @nationality)", Connect);
Command.Parameters.AddWithValue("@username", username);
Command.Parameters.AddWithValue("@firstname", firstname);
Command.Parameters.AddWithValue("@lastname", lastname);
Command.Parameters.AddWithValue("@email", email);
Command.Parameters.AddWithValue("@password", pass);
Command.Parameters.AddWithValue("@gender", gender);
Command.Parameters.AddWithValue("@nationality", nationality);
Command.ExecuteNonQuery();
int success = Command.ExecuteNonQuery();
if (success > 0)
{
Label1.ForeColor = System.Drawing.ColorTranslator.FromHtml("#12223");
Label1.Visible = true;
Label1.Text = "You have successfully registered";
Connect.Close();
}
else
{
Label1.Text = "Your information has not been entered to database";
Connect.Close();
}
INSERT INTO Table () VALUE '"+textbox1.text +"' を使用すると、重複することはありませんが、SQL インジェクションのようなものです。