gpt4 book ai didi

c# - 如何将 C# DateTime 转换为 MySQL 时间戳表列

转载 作者:行者123 更新时间:2023-11-29 07:50:17 25 4
gpt4 key购买 nike

我正在尝试用当前时间更新名为 dtprint 的时间戳类型的表元素(原始值为 NULL)。我使用的代码如下:

MySqlConnection con = new MySqlConnection("Connection_String");
con.Open();
MySqlCommand _cmd = con.CreateCommand();

string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

_cmd.CommandText = "UPDATE requests SET dtprint = " + dt + " WHERE idPerson = " + _personID[index];

_cmd.ExecuteNonQuery();

con.Close();

我不断收到的异常是:附加信息:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“14:03:23 WHERE idPerson = 45”附近使用的正确语法。

我唯一能想到的是数据库没有将时间识别为时间戳,非常感谢任何帮助。

最佳答案

由于 dt 是一个 string 并且您的 dtprinttimestamp,因此当您尝试插入它。喜欢;

"UPDATE requests SET dtprint = '" + dt + "' WHERE

但不要使用这种方式。

您应该始终使用parameterized queries 。这种字符串连接对SQL Injection开放。攻击。

也可以使用using statement处置您的数据库连接和对象。

using(MySqlConnection con = new MySqlConnection(ConnectionString))
using(MySqlCommand _cmd = con.CreateCommand())
{
string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
_cmd.CommandText = @"UPDATE requests SET dtprint = @dtprint
WHERE idPerson = @id";
_cmd.Parameters.Add("@dtprint", MySqlType.TimeStamp).Value = dt;
_cmd.Parameters.Add("@id", MySqlType.Int).Value = _personID[index];
con.Open();
_cmd.ExecuteNonQuery();
}

关于c# - 如何将 C# DateTime 转换为 MySQL 时间戳表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26637634/

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