mysql将查询插入表列

时间:2013-12-06 17:28:16

标签: c# mysql

我正在创建系统日志功能 我基本上需要做的是添加相关插入,将查询更新到具有日期时间和用户的单独表。 我的问题是,当我尝试插入插入查询作为行数据时,我收到错误。 我理解这是因为查询中的“'”。但我仍然需要重新运行这些查询。所以删除“'”对我来说不是一个选项。

以下是我要插入的查询:

insert into querylog (query,systemTime,user) 
values 
('INSERT INTO invoice(invoiceno,invoicenote,invoicetotal,nettotal,invoicedate,customer,receivedby,vehicleno) VALUES ('I 501','3223',15000,15000,'2013-12-06','C 116','','-')',
'12/6/2013 10:35:56 PM',
'Lakmal')

3 个答案:

答案 0 :(得分:2)

尝试在内部“插入”语句中加倍撇号(两个单撇号,而不是双引号):

insert into querylog (query,systemTime,user) 
values 
('INSERT INTO invoice(invoiceno,invoicenote,invoicetotal,nettotal,invoicedate,customer,receivedby,vehicleno) VALUES (''I 501'',''3223'',15000,15000,''2013-12-06'',''C 116'','''',''-'')',
'12/6/2013 10:35:56 PM',
'Lakmal')

答案 1 :(得分:1)

您在值的开头处开始使用单引号。

然后你将它们中途结束。

替换:

values ('INSERT INTO invoice(invoiceno,invoicenote,invoicetotal,nettotal,invoicedate,customer,receivedby,vehicleno) VALUES ('I 501','3223',15000,15000,'2013-12-06','C 116','','-')','12/6/2013 10:35:56 PM','Lakmal')

使用:

values ("INSERT INTO invoice(invoiceno,invoicenote,invoicetotal,nettotal,invoicedate,customer,receivedby,vehicleno) VALUES ('I 501','3223',15000,15000,'2013-12-06','C 116','','-')','12/6/2013 10:35:56 PM','Lakmal")

答案 2 :(得分:0)

我同意Grant Winney,将撇号改为双撇号。

或者,首先准备语句,然后使用值作为参数执行它。有关示例,请参阅http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.prepare%28v=vs.110%29.aspx。最大的优点是你可以将你的字符串放入Command.Parameters中,而且你的Sql语句字符串中没有任何东西可以破坏insert命令的语法。