c# - "Unknown column in ' 字段列表 '"知道为什么我得到它吗?

标签 c# mysql sql

知道为什么我会收到此异常吗?

我创建的表如下所示:

string.Format("CREATE TABLE IF NOT EXISTS `{0}`  ( `id` int(11) NOT NULL auto_increment,  `CAMXTime`  DATETIME  ,`Message` LONGTEXT , PRIMARY KEY  (`id`));", GlobalVariables.CamxmassagesTable);

插入语句看起来像

string.Format("INSERT INTO `{0}` (`CAMXTime` , `Message`) VALUES (`{1}`,`{2}`);", GlobalVariables.CamxmassagesTable, newNode.Item1, newNode.Item2);

newNode.Item1 来自类型DATETIMEnewNode.Item2是一个字符串

有什么想法吗?

最佳答案

您应该在值中使用单引号(当然,首先要转义它们)。所以 INSERT 语句应该是:

string.Format(
    "INSERT INTO `{0}` (`CAMXTime` , `Message`) VALUES (<b>'{1}','{2}'</b>);", // ` to '
    GlobalVariables.CamxmassagesTable,
    newNode.Item1<b>.Replace("'", "''")</b>,
    newNode.Item2<b>.Replace("'", "''")</b>
);

并不是说您应该使用这种方式执行 SQL 查询也不来转义值,但它稍微好一些。

编辑:使用参数化查询。

关于c# - "Unknown column in ' 字段列表 '"知道为什么我得到它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6398630/

相关文章:

c# - 这把锁有什么问题?

c# - ExcelWorksheet 维度 NullReferenceException

php - 在 mysql 中可能是这样的(LIKE 运算符)

sql - 使用大表时提高 MERGE 性能

mysql - 获取以下查询的答案的计数

c# - 在 iTextSharp 中隐藏表格边框

c# - 'as' 的重载/隐式运算符

mysql - 从 MySQL 中多个表的 max 列获取关联数据

mysql - shell脚本将数据解析为变量然后更新数据库

mysql - 通过 SQL 使用 JOIN 连接 4 个表