gpt4 book ai didi

c# - 在 C#、SQL Server : trying to update if value already present else insert 中执行查询时出错

转载 作者:太空宇宙 更新时间:2023-11-03 23:42:44 25 4
gpt4 key购买 nike

我正在尝试执行条件查询,例如如果用户名已存在则更新该行,否则插入用户名和密码。

下面是我的代码:

using (SqlCommand cmd = new SqlCommand("INSERT INTO Users(Username,Password) VALUES(@User,@password) ON DUPLICATE KEY UPDATE Username=VALUES(Username), Password=VALUES(Password)"))
{
cmd.Connection = con;
cmd.Parameters.AddWithValue("@User", TextBox3.Text);
cmd.Parameters.AddWithValue("@password", Pwd);

con.Open();
cmd.ExecuteNonQuery();
}

我收到以下错误:

Incorrect syntax near the keyword 'ON'.

我无法弄清楚这有什么问题。谁能帮帮我?

最佳答案

在 SQL Server 中,您需要使用如下查询:

-- check if exists (by username) - if found, update password
IF EXISTS (SELECT * FROM dbo.Users WHERE Username = @User)
UPDATE dbo.Users
SET Password = @password
WHERE Username = @User
ELSE
INSERT INTO dbo.Users(Username, Password)
VALUES(@User, @password)

正如我在评论中提到的那样 - 不要使用 .AddWithValue 函数(有关详细信息,请参阅链接的博客文章),而是使用它:

cmd.Parameters.Add("@User", SqlDbType.VarChar, 100).Value = TextBox3.Text;

另外,请不要将您的密码以明文的形式存储在数据库中!

关于c# - 在 C#、SQL Server : trying to update if value already present else insert 中执行查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28504774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com