“'字段列表中的未知列''”我知道为什么会得到它?

时间:2011-06-18 20:13:16

标签: 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来自DATETIME类型。 newNode.Item2 istring

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

你应该在你的价值观中使用单引号(当然,首先是逃避它们)。所以INSERT语句应该是:

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

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

修改:使用参数化查询。