gpt4 book ai didi

c# - 更新表中一行的正确 sql 是什么?

转载 作者:行者123 更新时间:2023-12-01 00:08:59 25 4
gpt4 key购买 nike

我可以使用C# 将数据InsertMySQL 中。但是,它不喜欢我下面的Update sqlkey 是一个autoincrement Primary Key

这是我正在使用的代码。 正确的 Update sql 和执行它的相应 C# 语句是什么?

public int UpdatetData(int key, System.DateTime ts, string user)
{
string sql = @"update parameters (DateTime, User)
values (@timestamp, @user) where Key = @key";

try
{
using (MySqlCommand cmd = new MySqlCommand(sql, connection))
{
cmd.Parameters.AddWithValue("@key", key);
cmd.Parameters.AddWithValue("@timestamp", ts);
cmd.Parameters.AddWithValue("@user", user);
...
return cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return -1;
}
}

最佳答案

UPDATE 语句的语法不正确,因为您需要专门设置每一列及其新值:

string sql = @"UPDATE parameters 
SET DateTime = @timestamp,
User = @user
WHERE Key = @key";

如果您需要更通用的格式作为引用,您可以使用以下格式:

string sql = @"UPDATE [Table]
SET [Column] = [Value],
[OtherColumn] = [OtherValue]
WHERE [Condition]";

示例

一个完整的例子,连同一个连接(我之前没有看到定义)可能看起来像这样:

public int UpdatetData(int key, System.DateTime ts, string user)
{
// Build parameterized query (with escaped DateTime)
var sql = @"UPDATE parameters
SET [DateTime] = @timestamp,
User = @user
WHERE Key = @key";
try
{
using(var connection = new MySqlConnection("{your-connection-string}"))
{
connection.Open();
using (var command = new MySqlCommand(sql, connection))
{

command.Parameters.AddWithValue("@key", key);
command.Parameters.AddWithValue("@timestamp", ts);
command.Parameters.AddWithValue("@user", user);
return command.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return -1;
}
}

关于c# - 更新表中一行的正确 sql 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43102645/

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