C#check userid已经存在

时间:2014-02-27 12:47:31

标签: c# asp.net sql

我正在设计一个网页表单,以便将数据插入到sql数据库中。我只想检查已经存在的唯一的电子邮件ID。

代码:

protected void TextBox2_TextChanged(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(TextBox2.Text))
        {

            SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\aayush\\Documents\\Visual Studio 2010\\WebSites\\JustDial\\App_Data\\Database.mdf';Integrated Security=True;User Instance=True");
            con.Open();

            SqlCommand cmd = new SqlCommand("select shop_email from shop where shop_email=@email", con);

            cmd.Parameters.AddWithValue("@email", TextBox2.Text);

            SqlDataReader dr = cmd.ExecuteReader();

            if (dr.HasRows)
            {
                Label1.Text = "email id already exists";
            }
            con.Close();
        }
    }

我尝试了上面的代码,但它没有工作,但标签没有显示任何内容。任何帮助都会感激。

2 个答案:

答案 0 :(得分:3)

问题:您正在TextBox_TextChanged事件处理程序中编写代码,以便每当TextBox发生更改时都会调用它,并且它不会给您除非您输入完整的Email-ID

,否则结果将一直显示

解决方案1:您需要在一些Button Click事件处理程序中编写上述代码,如下所示:

protected void btnSearch_Click(object sender,EventArgs e)
{

//Write your code here

}

解决方案2 :如果您希望将代码保留在TextBox TextChanged事件处理程序中,但仍希望识别EmailID您可以使用LIKE运算符而不是=运算符

试试这个:

SqlCommand cmd = new SqlCommand("select shop_email from shop
               where shop_email LIKE @email", con);

cmd.Parameters.AddWithValue("@email", "'%"+TextBox2.Text +"%'"+);

答案 1 :(得分:0)

如果用户/电子邮件不存在,请尝试添加else语句 同时将此代码移动到按钮单击事件或其他一些事件。在文本框文本更改事件中,它不会返回结果。

using (var con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\aayush\\Documents\\Visual Studio 2010\\WebSites\\JustDial\\App_Data\\Database.mdf';Integrated Security=True;User Instance=True"))
using(var cmd = new SqlCommand("select 1 from shop where UserID=@UserID", con))
{
    con.Open();
    cmd.Parameters.AddWithValue("@UserID", TextBox2.Text);
    using (var dr = cmd.ExecuteReader())
    {
       if (dr.HasRows)
       {
          Label1.Text = "userid already exists";
       }
       else
       {
          Label1.Text = "userid doesn't exists";
          //Create new user
       }
   }
}