知道我为什么会遇到这个例外吗?
我的创建表如下所示:
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 i
是string
。
有什么想法吗?
答案 0 :(得分:3)
你应该在你的价值观中使用单引号(当然,首先是逃避它们)。所以INSERT
语句应该是:
string.Format(
"INSERT INTO `{0}` (`CAMXTime` , `Message`) VALUES ('{1}','{2}');", // ` to '
GlobalVariables.CamxmassagesTable,
newNode.Item1.Replace("'", "''"),
newNode.Item2.Replace("'", "''")
);
不是说您应该使用这种方式来执行SQL查询或来转义值,但它稍微好一点。
修改:使用参数化查询。