插入和更新功能适用于c#中单击按钮

时间:2017-04-10 04:46:50

标签: c# asp.net insert

我正在尝试使用相同的按钮插入和更新数据。我创建了方法(uniqueEmail())来检查表中是否存在电子邮件地址。如果没有预设电子邮件,我正在尝试插入数据。 这是我的代码,请在我出错的地方纠正我。

public partial class _Default : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection("Data Source=ADMIN-PC\\SQLEXPRESS;Initial Catalog=register;Integrated Security=True");

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public void Button1_Click(object sender, EventArgs e)
    {
        con.Open();
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandType = CommandType.Text;
        if (uniqueEmail()==true)
        {
            cmd.CommandText = "update registeruser set email='" + TextBox1.Text + "', password='" + TextBox2.Text + "' where email='" + TextBox1.Text + "'";
        }
        else 
        {
            cmd.CommandText = "insert into registeruser values('" + TextBox1.Text + "', '" + TextBox2.Text + "')";
        }

        cmd.ExecuteNonQuery();
        con.Close();

    }
    public bool uniqueEmail()
    {
        string stremail;
        string querye = "select count(email) as email from registeruser";
        SqlCommand cmd = new SqlCommand(querye, con);
        SqlDataReader dr;
        dr = cmd.ExecuteReader();
        while (dr.Read()) 
        {
            try
            {
                stremail = dr["email"].ToString();
                return(stremail != "0");
                if (stremail != "0")
                {
                    //errlblemail.Text = "email already exist";
                    return false;
                }

            }
            catch (Exception e)
            {
                string message = "error";
                message += e.Message;
            }
            finally
            {
                dr.Close();
            }
        }

        return true;


    }
}

4 个答案:

答案 0 :(得分:0)

@nirmala你应该替换方法

public void EmailCheck()
{
    string constring = ConfigurationManager.ConnectionStrings["ConnData"].ConnectionString;
    SqlConnection con = new SqlConnection(constring);
    SqlCommand cmd = new SqlCommand("Select * from EmailSignUp where EmailId= @EmailId", con);
    cmd.Parameters.AddWithValue("@EmailId", this.txtEmail.Text);
    con.Open();
    SqlDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
        if (dr.HasRows == true)
        {
            MessageBox.Show("EmailId = " + dr[5].ToString() + " Already exist");
            txtEmail.Clear();
            break;
        }
    }

}

答案 1 :(得分:0)

您需要检查特定emailId的计数,而不是总计数。

修改代码如下:

public static bool uniqueEmail(string email)
{
        string stremail;
        string querye = "select count(email) as email from register where 
        email = '" + email + "'";
        //Remaining Code
}

 public static void Button1_Click(object sender, EventArgs e)
 {
        con.Open();
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandType = CommandType.Text;
        if (uniqueEmail(TextBox1.Text)) == true) 
       //Remaining Code
  }

答案 2 :(得分:0)

需要做两件事

  1. 在致电

    时传递电子邮件ID

    if(uniqueEmail()== true)

  2. if (uniqueEmail(TextBox1.Text)==true)
    
    1. uniqueEmail 方法中,查询()包含where条件如下

      public bool uniqueEmail(email)
      {
      string stremail;
      string querye = "select count(email) as email from registeruser where email='" + email + "'";
      
      //your remaining code
      }
      

答案 3 :(得分:0)

您好Nirmala您的代码是正确的,只需要在where子句中找到数据库中已存在的电子邮件ID。

public partial class _Default : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection("Data Source=ADMIN-PC\\SQLEXPRESS;Initial Catalog=register;Integrated Security=True");

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public void Button1_Click(object sender, EventArgs e)
    {
        con.Open();
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandType = CommandType.Text;
        if (uniqueEmail()==true)
        {
            cmd.CommandText = "update registeruser set email='" + TextBox1.Text + "', password='" + TextBox2.Text + "' where email='" + TextBox1.Text + "'";
        }
        else 
        {
            cmd.CommandText = "insert into registeruser values('" + TextBox1.Text + "', '" + TextBox2.Text + "')";
        }

        cmd.ExecuteNonQuery();
        con.Close();

    }
    public bool uniqueEmail()
    {
        string stremail;
        string querye = "select count(email) as email from registeruser where email = '" +TextBox1.Text+ "'";
        SqlCommand cmd = new SqlCommand(querye, con);
        SqlDataReader dr;
        dr = cmd.ExecuteReader();
        while (dr.Read()) 
        {
            try
            {
                stremail = dr["email"].ToString();
                return(stremail != "0");
                if (stremail != "0")
                {
                    //errlblemail.Text = "email already exist";
                    return false;
                }

            }
            catch (Exception e)
            {
                string message = "error";
                message += e.Message;
            }
            finally
            {
                dr.Close();
            }
        }

        return true;


    }
}