SQL Server:查询顺序C#
我有一个表单,用户需要填写它。 我需要做3件事: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
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时,你不应该试图把事情分解成一系列步骤——告诉系统你想要什么,让它知道如何去做。你的意思是像函数一样?