私は以前にこれを投稿しようとしましたが、コードエディタが正しく不完全に投稿したため、削除する必要がありました。さらに、メンバーにSQLインジェクションについて質問してもらいました。
ストーリーは次のとおりです。
データベースに送信する前に、ユーザーが自分の情報を確認できるページがあります。サーバーエラーが発生しないように、送信する前にその主キーが存在するかどうかを確認するだけです。
私のページ読み込みイベントには、次のものがあります。
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString);
SqlCommand oldcmd = new SqlCommand("SELECT * from dbo.registrar WHERE [MY ID] = '"+ID+"'", conn);
oldcmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(oldcmd);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count >= 1)
{
lblExists.Visible = true;
lblExists.ForeColor = System.Drawing.Color.Red;
lblExists.Text = "Oops! Our records show that you have already signed up for this service. Please check your information or contact your administrator for further assistance.";
}
データベースにレコードがないのにラベルが表示され、間違っていることがわかります。