2014-10-17 80 views
0

我做了一个服务,它从物理xml文件中检索sql命令。如何摆脱{0}字符串参数中的单引号?

它看起来像:

<Sql> 
     <![CDATA[ 
     SELECT 
       MAX(COMM_HIST_NO) AS COMM_HIST_NO 
      , MAX(COMMUTER_NO) AS COMMUTER_NO 
      , MAX(ARRIVED_AT_WORK) AS ARRIVED_AT_WORK 
      , MAX(LEFT_WORK) AS LEFT_WORK 

     FROM COMMUTE_HISTORY 

     WHERE COMMUTER_NO = {0} 
     AND DATEDIFF(DAY, {1}, GETDATE()) = 0 
    ]]> 
</Sql> 

这里是作为一个字符串什么返回SQL命令:

// arParams is an Array. 
string.Format(xmlDoc.SelectSingleNode("/SVC/Sql").InnerText,arParms) 

{1}将是一个列的名字,我想我的{1}参数写成列名,没有单引号。

具体而言,Java中的Mybatis提供${param}#{param},后者从字符串参数中删除了单引号。

.NET必须开发此功能!

+0

您想要使用参数化查询。如果这是SQL Server,则可以在查询中使用命名参数,例如'COMMUTER_NO = @ commuterNo',并使用'SqlCommand'和'SqlParameter'类使用参数执行查询。 – Blorgbeard 2014-10-17 02:29:35

+0

问题可能在于如何构造arParams。你能告诉我们那个代码吗? – 2014-10-17 02:30:06

+2

[这是一个示例](http://stackoverflow.com/questions/7505808/using-parameters-in-sql-statements)在C#中使用SQL Server中的参数化查询。 – Blorgbeard 2014-10-17 02:31:26

回答

0

对不起,这是一个简单的错误。

它在第一个地方工作。如果没有在参数周围提供单引号,那么''将不存在。