1

文字列ビルダーを使用して SQL スクリプトを作成しています。テストしたいブール値プロパティがいくつかあり、true/false に基づいて異なるテキストを出力します。変数に値を代入するときの C# 構文を以下に示しましたが、この特定の状況では機能しません。何か案は?

私が慣れていること:

string someText = (dbInfo.IsIdentity) ? "First Option" : "Second Option";

StringBuilder メソッド内で同じことを複製しようとしていますが、これは機能していません..

script.Append("sometext" + (dbInfo.IsIdentity) ? " IDENTITY(1,1)" : "");
4

7 に答える 7

3

stringbuilder がある場合は、それを使用して文字列を連結する必要があると述べること以外。

とはいえ、次のコードは機能するはずです。

script.Append("sometext");
script.Append(dbInfo.IsIdentity ? " IDENTITY(1,1)" : "");

この特定のケースでは、次のこともできます。

script.Append("sometext");
if(dbInfo.IsIdentity) script.Append(" IDENTITY(1,1)");
于 2009-01-22T18:14:11.000 に答える
3

追加の括弧、またはより適切な AppendFormat の使用

script.AppendFormat("sometext{0}", dbInfo.IsIdentity ? " IDENTITY(1,1)" : "");
于 2009-01-22T18:15:11.153 に答える
0

簡単な提案: このような SQL を生成する場合は、単純な C# を使用するよりも、 StringTemplateのようなテンプレートを使用して生成したほうがよい場合があります。

于 2009-01-22T18:16:53.087 に答える