我可以使用Insert
MySQL
将C#
数据导入Update
。但是,它不喜欢我的sql
key
。 autoincrement
是Primary
Key
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 sql和相应的C#语句来执行它?
public enum MyEnum : byte
{
One = 1,
Two = 2
}
答案 0 :(得分:2)
UPDATE
语句的正确语法是:
Update `Parameters`
Set `DateTime` = @TimeStamp,
`User` = @User
Where `Key` = @Key
您需要对C#进行的唯一更改是sql
变量声明:
string sql =
@"
Update `Parameters`
Set `DateTime` = @TimeStamp,
`User` = @User
Where `Key` = @Key
";
答案 1 :(得分:2)
正确的语法是:
update parameters (DateTime, User)
set DateTime = @timestamp,
User = @user
where Key = @key;
您的语法有点像insert
。
您应该小心列名。有些是SQL中的关键字,可能会被保留(取决于您的数据库)。您需要使用反引号,双引号或方括号来转义它们,具体取决于您的数据库。
答案 2 :(得分:2)
您的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;
}
}
答案 3 :(得分:1)
您可以使用此语法,您的语法是插入和更新语句的混合。
string sql = @"update `parameters`
set `DateTime` = @timestamp ,
`User` = @user
where `Key` = @key";