Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中插入和更新单键单击的函数工作#_C#_Asp.net_Insert - Fatal编程技术网

C# 在c中插入和更新单键单击的函数工作#

C# 在c中插入和更新单键单击的函数工作#,c#,asp.net,insert,C#,Asp.net,Insert,我正在尝试使用相同的按钮插入和更新数据。我创建了方法(uniqueEmail())来检查表中是否存在电子邮件地址。使用这种方法,我试图插入数据,如果电子邮件不是预设的。 这是我的代码,请纠正我哪里出错了 public partial class _Default : System.Web.UI.Page { SqlConnection con = new SqlConnection("Data Source=ADMIN-PC\\SQLEXPRESS;Initial Catalog=reg

我正在尝试使用相同的按钮插入和更新数据。我创建了方法(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;


    }
}

@尼马拉:你应该换一种方法

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;
        }
    }

}

您需要检查特定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
  }

需要做两件事

  • 呼叫时传递电子邮件Id

    if(uniqueEmail()==true)

  • uniqueEmail方法chenage中,查询()包括where条件,如下所示

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

  • 您好,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;
    
    
        }
    }
    

    代码看起来很好,现在有什么问题了???@nirmala您的代码很好。请写什么是错误?如果我使用现有的emailid注册,而不是更新其插入的数据一次。谢谢lot@Boney现在开始工作了。但我怀疑为什么我们使用这个语句“return(stremail!=“0”);”就好像使用了条件一样。请解释一下,我是.net新手。它是一个计算结果为布尔值的C#表达式。它基本上等同于下面的代码:
    if(stremail!=“0”)返回true//计数(电子邮件)不是零。数据库中已存在电子邮件。不更新,否则返回false//计数(电子邮件)为零。新邮件。请插入。
    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;
    
    
        }
    }