簡體   English   中英

Windows窗體C#中形成的動態mdx查詢中的轉義百分比字符(%)

[英]Escape percentage character (%) in a dynamic mdx query formed in windows forms C#

如何在動態MDX中轉義“%”字符。 我希望在MDX中將“%”視為文字而不是通配符。 這是正在發生的事情的基本思想:我有一個Windows窗體(使用c#),用戶可以在其中為MDX查詢創建動態搜索表達式。 例如,貨幣包含 美國

其中“貨幣”是靜態的,條件“包含”是下拉選擇值,然后是“美國”的文本框。

因此,用戶單擊“搜索”,就會在上述條件下形成動態MDX,並且發生多維數據集命中。

現在,當查詢如下時,我沒有得到正確的結果:

計算包含 50%

此處,%被視為通配符,並且顯示任何包含“ 50”的內容。 請幫忙。 我嘗試使用引號“”,方括號[],反斜杠\\,雙字符%%。 但沒有運氣。

更新:它實際上是對用戶的前端含義,在后端我為此使用Analysis Stored Procedures,“ IsLike”。 查詢是這樣的:{WITH MEMBER [Measures]。[Search] AS IIF([ASSP]。[IsLike]([Calculation]。[Calculation] .CurrentMember.Properties('MEMBER_CAP‌ÂTION'),'% 50 %%')}

謝謝

如果我正確理解了您的問題,那么您正在使用ASSP(分析存儲過程)IsLike方法,並且想知道如何在相似模板中轉義% ,以便從字面上搜索它。 看一下源代碼( http://asstoredprocedures.codeplex.com/SourceControl/latest#ASSP/StringFilters.cs ,方法LikeToRegEx ),我看不到實現此目的的簡便方法。 在此方法中,百分比無條件地由".*"代替。 您可以做的是下載ASSP源代碼並更改此方法,以允許轉義百分比,例如,使用"[%]"可以在SQL Server關系引擎( like 例如 您可以在

sb.Replace("[.]", @"_");

另一條線

sb.Replace("[\.]", @"%");

這將恢復[%]過度用[.*]代替。 然后,您將對此進行編譯並重新部署。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM