亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查用戶名或用戶電子郵件已存在

檢查用戶名或用戶電子郵件已存在

慕慕森 2020-02-01 16:16:44
我在一個簡單的注冊頁面中工作,在該頁面中,用戶無法輸入相同的用戶名或電子郵件,我編寫了一個代碼,阻止用戶輸入用戶名,但該代碼有效,但是當我嘗試阻止用戶輸入相同的用戶名時或通過電子郵件發送無效的郵件。我的問題是,“如何添加用戶無法輸入已經存在的電子郵件的其他條件?”我試圖在這段代碼中做到這一點,但是沒有成功:protected void Button_Click(object sender, EventArgs e){  SqlConnection con = new SqlConnection( ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString );  SqlCommand cmd1 = new SqlCommand("select 1 from Table where Name =@UserName", con);  SqlCommand cmd2 = new SqlCommand("select 1 from Table where Email=@UserEmail", con);  con.Open();  cmd1.Parameters.AddWithValue("@UserName", Name_id.Text);  cmd2.Parameters.AddWithValue("@UserEmail", Email_id.Text);   using (var dr1 = cmd1.ExecuteReader())  {    if (dr1.HasRows)    {      Label1.Text = "user name already exists";    }    using (var dr2 = cmd2.ExecuteReader())    {      if (dr2.HasRows)      {        Label1.Text = "email already exists";      }      else      {        dr1.Close();        dr2.Close();        //add new users        con.Close();      }    }  }  }但是我得到這個錯誤:已經有與此命令相關聯的打開的DataReader,必須先關閉它。
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

您已經在First內部打開了另一個DataReader,這就是造成問題的原因。在這里,我重新安排了您的代碼


SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

SqlCommand cmd1 = new SqlCommand("select 1 from Table where Name =@UserName", con),

cmd2 = new SqlCommand("select 1 from Table where Email=@UserEmail", con);


con.Open();

cmd1.Parameters.AddWithValue("@UserName", Name_id.Text);

cmd2.Parameters.AddWithValue("@UserEmail", Email_id.Text);


bool userExists = false, mailExists = false;


using (var dr1 = cmd1.ExecuteReader())

     if (userExists = dr1.HasRows) Label1.Text = "user name already exists";


using (var dr2 = cmd2.ExecuteReader())

     if (mailExists = dr2.HasRows) Label1.Text = "email already exists";


if (!(userExists || mailExists)) {

     // can add User

}


查看完整回答
反對 回復 2020-02-01
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

您需要先關閉一個數據讀取器,然后再打開另一個。盡管這不是我的方法,但是您可以通過在每次之后關閉datareader來處理運行時錯誤IF:


using (var dr1 = cmd1.ExecuteReader())

{

    if (dr1.HasRows)

    {

        string Text = "user name already exists";

    }

    dr1.Close();

}


using (var dr2 = cmd2.ExecuteReader())

{

    if (dr2.HasRows)

    {

        string ext = "email already exists";

    }


    else

    {

        //add new users

    }

    dr2.Close();

}

con.Close();


查看完整回答
反對 回復 2020-02-01
  • 3 回答
  • 0 關注
  • 1059 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號