SQL Server:查询顺序C#

SQL Server:查询顺序C#,c#,sql-server,C#,Sql Server,我有一个表单,用户需要填写它。 我需要做3件事: 检查数据库中是否存在UserEmail 如果存在UserEmail,则更新诸如姓名、电话等信息 但如果UserEmail不存在,则在db中创建一个新用户 我想问你们怎么做才是正确的方法。 这就是我目前所做的: protected void btnGo_Click(object sender, EventArgs e) { SqlConnection Conn = new SqlConnection(); Conn.Conn

我有一个表单,用户需要填写它。 我需要做3件事:

  • 检查数据库中是否存在UserEmail
  • 如果存在UserEmail,则更新诸如姓名、电话等信息
  • 但如果UserEmail不存在,则在db中创建一个新用户
  • 我想问你们怎么做才是正确的方法。 这就是我目前所做的:

        protected void btnGo_Click(object sender, EventArgs e)
    {
        SqlConnection Conn = new SqlConnection();
        Conn.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Peter\Documents\Visual Studio 2013\WebSites\WebSite41\App_Data\Database.mdf;Integrated Security=True";
        SqlCommand SQLcmd = new SqlCommand();
        SQLcmd.Connection = Conn;
        //SQLcmd.CommandText = "INSERT INTO Customers (Name, Phone, Email, Adress) VALUES ('"+txtName.Text+"','"+txtPhone.Text+"','"+txtEmail.Text+"','"+txtAdress.Text+"')";
        SQLcmd.CommandText = "SELECT Email FROM Customers";
        Conn.Open();
        var Email = SQLcmd.ExecuteScalar();
        lblMessage.Text = "";
        if (Email.ToString() == txtEmail.Text)
        {
            lblMessage.Text = "Email already exist! - so far so good";
            lblMessage.Visible = true;
        }
        Conn.Close();
    }
    

    那么现在我应该如何继续进行其他查询呢?

    您可以为此创建一个过程,将所有参数传递给该过程,如FirstName、LastName、email、PhoneNo等。 程序将根据电子邮件检查电子邮件是否存在,它将插入或更新您的数据。 像这样的过程代码

    CREATE PROCEDURE UpdateCustomerInfo @firstName VARCHAR(50)
        ,@LastName VARCHAR(50)
        ,@email VARCHAR(50)
        ,@Phone VARCHAR(20)
    AS
    BEGIN
        IF EXISTS (
                SELECT 1
                FROM CUSTOMERMASTER
                WHERE Email = @email
                )
        BEGIN
            UPDATE CUSTOMERMASTER
            SET FirstName = @firstName
                ,LasstName = @LastName
                ,Telephone = @Phone
            WHERE Email = @email
        END
        ELSE
            INSERT INTO CUSTOMERMASTER (
                FirstName
                ,LastName
                ,Email
                ,Telephone
                )
            VALUES (
                @firstName
                ,@LastName
                ,@email
                ,@Phone
                )
    END
    

    使用
    WHERE
    子句检查您的
    Email
    表中是否存在输入,如
    WHERE Email=@Email
    。如果存在,请在If语句中更新数据库中的
    名称
    电话
    。它不存在,
    插入一个新用户,在您的else部分中包含它的信息。您能给我一个示例,用代码显示它吗?可以编写一条语句来完成整个工作。当谈到SQL时,你不应该试图把事情分解成一系列步骤——告诉系统你想要什么,让它知道如何去做。你的意思是像函数一样?