string.Format og ‘{…}’


Nu er jeg rendt ind i samme problem et par gange, og satte mig for at løse det på den pæne måde denne gang.
Scenariet er det, at jeg gerne vil opbygge en streng vha. string.Format(…) ell. StringBuilder.AppendFormat(…). Såfremt parametrene indeholdt tuborg-parenteser (curlybraces, {}) modtager man en exception om at formateringen ikke er korrekt.
Rettere er fejlbeskeden man modtager: “Input string was not in a correct format.”

Vi eksemplificerer

System.Text.StringBuilder strBuilder = new System.Text.StringBuilder();
string strFormat = @”
SELECT
{[Measures].[Unit Price]} ON COLUMNS,
DISTINCT( {{0}.siblings} ) ON ROWS
FROM [Sales]
;
string strValue = @”
[Products].[Product Name].&[Spegesild],
[Products].[Product Name].&[Longlife Tofu],
[Products].[Product Name].&[Filo Mix]”
;
strBuilder.AppendFormat( strFormat, strValue );

Det springende punkt er hvordan parseren fortolker DISTINCT( {{0}.siblings} ) ON ROWS

For det skal virke, må DISTINCT( {{0}.siblings} ) ON ROWS blive til DISTINCT( {{{0}.siblings}} ) ON ROWS

Således må det endelige udtryk der fungerer blive til 

System.Text.StringBuilder strBuilder = new System.Text.StringBuilder();
string strFormat =
@”
SELECT

{[Measures].[Unit Price]} ON COLUMNS,
DISTINCT( {{{0}.siblings}} ) ON ROWS
FROM [Sales]
;
string strValue =
@”
[Products].[Product Name].&[Spegesild],
[Products].[Product Name].&[Longlife Tofu],
[Products].[Product Name].&[Filo Mix]”
;

strBuilder.AppendFormat( strFormat, strValue );

Reklamer

Skriv et svar

Udfyld dine oplysninger nedenfor eller klik på et ikon for at logge ind:

WordPress.com Logo

Du kommenterer med din WordPress.com konto. Log Out / Skift )

Twitter picture

Du kommenterer med din Twitter konto. Log Out / Skift )

Facebook photo

Du kommenterer med din Facebook konto. Log Out / Skift )

Google+ photo

Du kommenterer med din Google+ konto. Log Out / Skift )

Connecting to %s

%d bloggers like this: