程序将不允许我在使用.net连接MySQL的SQL服务器中更新日期时间列

本文关键字:服务器 SQL 更新 时间 日期 MySQL 连接 允许我 不允许 net 程序 | 更新日期: 2023-09-27 18:14:15

我正在编写一个与硬件设备交互和监控的程序。我希望能够记录当前状态和检查时间。

我已经测试了,以确保程序和硬件设备之间有连接,程序和SQL Server之间有连接。这个连接很好。

我已经尝试只更新状态,这工作发现。但是当我更新状态和lastupdated column时,它给出了一个内部异常,说

"Modifying a column with the 'Identity' pattern is not supported. Column: 'lastupdated'. Table: 'logModel.Store.statuslog_current_log'."

还要注意,SQL表中最后更新的列的类型是DateTime。另外,SQL服务器是MySQL服务器,我在Visual Studio 2015上使用c#,并使用。net连接器用于MySQL。

下面是我使用的代码,

if (data != null && data[0] >= 0 && data[1] >= 0 && data[2] >=0 && data[3] >= 0)
{
    List<statuslog_current_display> result = db.statuslog_current_display.Where<statuslog_current_display>(m => m.doorid == DoorID).ToList();
    foreach (statuslog_current_display status in result)
    {
        status.statuscode = (int) data[1];
        status.lastupdated = DateTime.Now;
    }
}
try {
    db.SaveChanges();
} 
catch (Exception ex)
{
    ErrorHandler.showErrorMessage(ex.Message);
}

程序将不允许我在使用.net连接MySQL的SQL服务器中更新日期时间列

Allow Zero Datetime=True;添加到连接字符串的末尾。

当DATETIME或DATE字段包含无效值时,可能会发生这种情况。根据该列的默认值可以视为无效日期。

我找到了问题的答案。我设法通过改变模型编辑器中的StoreGeneratedPattern来使其工作(因为我使用ADO进行了此操作)。. NET设计器)从Identity到None。这可能与在数据库中使用TIMESTAMP变量而不是DATETIME变量有关。