2013-02-27 63 views
1

我有以下查詢代碼在C#中使用NHibernate查詢。在NHibernate查詢處理SQL Server的開放方括號

IQuery query = session.CreateQuery(String.Format(@" 
       select 
       r 
       from 
       Revision r 
       where r.Code = :Code 
       order by upper(r.Name), r.SeqNo 
       ")) 

query.SetParameter<string>("Code", CodeValue); 

我有問題,如果變量CodeValue的值包含字符'['(開放式方括號)。每次它作爲值傳遞時,SQL Server都將不返回結果。

請教,謝謝。

回答

1

試試這個

query.SetAnsiString("text", "%" + filter.Text.Replace("[", "[[]") + "%"); 
+0

您好,感謝您的回答。幹得好,我就像你在這裏展示的那樣應用代碼。我發現'['是SQL Server中的轉義字符之一。所以,總之,我們只需要管理文本來處理SQL Server的轉義字符。非常感謝 – Zan 2013-02-27 09:42:23

+0

不知道爲什麼要添加%,查詢是使用=不是。 – StrayCatDBA 2013-02-27 12:25:59