2014-10-17 82 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

對不起,這是一個簡單的錯誤。

它在第一個地方工作。如果沒有在參數周圍提供單引號,那麼''將不存在。