如何使用C#将动态查询插入表中

时间:2019-05-09 12:55:03

标签: c# sql sql-server

我需要将我生成的动态查询插入并保存到sql-server数据库表中,但是在没有任何条件的情况下可以正常工作,但在有条件的情况下却给我错误,请任何人都可以帮助我。

INSERT INTO [dbo].[tablename] ([DataQuery],[DataQueryName],[EditedDate],[LastUsedDate],[UserId])
 VALUES ('SELECT * from tablename WHERE tablename.UID < '10' AND tablename.status = 'Active' ORDER BY Id'
       ,'aa',GETDATE(),GETDATE(),'1541')

2 个答案:

答案 0 :(得分:2)

您需要在SQL语句中使用单引号将单引号转义:

INSERT INTO [dbo].[tablename] ([DataQuery],[DataQueryName],[EditedDate],[LastUsedDate],[UserId])
 VALUES ('SELECT * from tablename WHERE tablename.UID < ''10'' AND tablename.status = ''Active'' ORDER BY Id'
       ,'aa',GETDATE(),GETDATE(),'1541')

答案 1 :(得分:0)

可能是您的WHERE子句中的单引号需要转义。尝试用\'替换查询中的单引号以使引号转义。示例:

INSERT INTO [dbo].[tablename]
([DataQuery],[DataQueryName],[EditedDate],[LastUsedDate],[UserId])
 VALUES ('SELECT * from tablename WHERE tablename.UID < \'10\' AND tablename.status = \'Active\' ORDER BY Id'
       ,'aa',GETDATE(),GETDATE(),'1541')