Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于重复密钥语法错误_C#_Sql - Fatal编程技术网

C# 关于重复密钥语法错误

C# 关于重复密钥语法错误,c#,sql,C#,Sql,我想在我的表中执行insert操作,但当找到重复的键时,必须对特定列进行更新,因此我使用了重复键SQL函数,调试器显示此错误: 您的SQL语法有错误;检查手册 对应于要使用的正确语法的MariaDB服务器版本 第1行附近的“重复键未日期超时=”0“+”2“” 这是我的密码: query = "insert into regrouper values('" + nummach + "','" + numpan + "','" + date.ToString(format) + "','" + ti

我想在我的表中执行insert操作,但当找到重复的键时,必须对特定列进行更新,因此我使用了重复键SQL函数,调试器显示此错误:

您的SQL语法有错误;检查手册 对应于要使用的正确语法的MariaDB服务器版本 第1行附近的“重复键未日期超时=”0“+”2“”

这是我的密码:

query = "insert into regrouper values('" + nummach + "','" + numpan + "','" + date.ToString(format) + "','" + timeout + "') on duplicated key undate timeout ='"+oldtime+"'+'"+timeout+"'";

commandDatabase = new MySqlCommand(query, databaseConnection);
MySqlDataReader myReader4 = commandDatabase.ExecuteReader();

我想这只是一个拼写错误。。 写“更新”而不是未注明日期


检查你的拼写。对于字符串连接,最好使用string.Format

    query = string.Format(
        "insert into regrouper values('{0}','{1}','{2}','{3}') on duplicate key update timeout ='{4}'+'{3}'",
        nummach, numpan, date.ToString(format), timeout);

关于重复密钥更新
而不是
关于重复密钥更新
。但是,您也需要使用参数化查询,而不是大量使用查询字符串。任何时候您有SQL问题,都需要告诉我们您使用的是什么版本的SQL(SQL Server?MySQL?Oracle?PostgreSQL?),因为语法不同。好的,谢谢您的帮助问题在于您的拼写。它的“复制键”不是复制键在修复了复制到复制和未日期更新后,它会自动工作
    query = string.Format(
        "insert into regrouper values('{0}','{1}','{2}','{3}') on duplicate key update timeout ='{4}'+'{3}'",
        nummach, numpan, date.ToString(format), timeout);