実行時SQLクエリを使用してデータベースにデータを挿入していますが、その前にレコードが存在するかどうかを確認しています。以下は、レコードが特定の電子メールに関連付けられていませんが、レコードがない場合には(他の部分にとは、ExecuteNonQuery後に行くがあった場合、私のコードデータをデータベースに保存できません
protected void btnSignUp_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
try
{
using (SqlConnection con = new SqlConnection(cs))
{
string strgender = "";
if (Rb_Male.Checked)
strgender = "Male";
else if (Rb_Female.Checked)
strgender = "Female";
else
{
lblMsg.Text = "Please Select Gender";
lblMsg.ForeColor = Color.Red;
}
con.Open();
SqlCommand cmdcheck = new SqlCommand();
cmdcheck.CommandText = "select * from [Users] where E_Mail='" + @tb_Email.Text + "'";
cmdcheck.Connection = con;
//cmd.Parameters.AddWithValue("@em", tb_Email.Text);
SqlDataReader drd = cmdcheck.ExecuteReader();
if (drd.Read())
{
lblEmail.Visible = true;
lblEmail.Text = "Email Already Exsits";
lblMsg.ForeColor = Color.Red;
lblMsg.Text = "Account not created!!!";
}
else
{
string strcmd = "insert into Users values ('" + @tbName.Text + "','" + @tbSName.Text + "','" + @tb_Email.Text + "','" + @tb_Pass.Text + "','" + @DropDownDay.Text + "','" + @DropDownMonth.Text + "','" + @DropDownYear.Text + "','"+ strgender +"')";
SqlCommand cmd = new SqlCommand(strcmd, con);
cmd.ExecuteNonQuery();
lblMsg.Text = "Account created sussecfully";
lblMsg.ForeColor = Color.Green;
clearallfields();
}
}
}
catch
{
lblMsg.ForeColor = Color.Red;
lblMsg.Text = "Account not created!!!";
}
}
else
{
lblMsg.ForeColor = Color.Red;
lblMsg.Text = " * Enter Required Field(s)";
}
}
蛇腹部が)場合にはうまく機能しているです。それがこれで私を助け
if (drd.Read())
{
lblEmail.Visible = true;
lblEmail.Text = "Email Already Exsits";
lblMsg.ForeColor = Color.Red;
lblMsg.Text = "Account not created!!!";
}
else
{
string strcmd = "insert into Users values ('" + @tbName.Text + "','" + @tbSName.Text + "','" + @tb_Email.Text + "','" + @tb_Pass.Text + "','" + @DropDownDay.Text + "','" + @DropDownMonth.Text + "','" + @DropDownYear.Text + "','"+ strgender +"')";
SqlCommand cmd = new SqlCommand(strcmd, con);
cmd.ExecuteNonQuery();
lblMsg.Text = "Account created sussecfully";
lblMsg.ForeColor = Color.Green;
clearallfields();
}
}
}
catch
{
lblMsg.ForeColor = Color.Red;
lblMsg.Text = "Account not created!!!";
}
親切キャッチ部分に行く..
例外の詳細は何ですか? –
を参照するには 'Catch(Exception ex)'を使用してください。エラーは「このコマンドに関連付けられている開いているDataReaderが既にあり、最初に閉じる必要があります。 – faisal