私はいくつかのTrues
とFalses
で、次のようなSQL文字列を持っているとboolsを交換することができません:int型
INSERT INTO SystemRules (Col1, Col2, Col3, Col4, Col5)
Values (False,False,True,False,False)
私はこれをしようとすると、私は1と0を持つすべての偽とすべての真を交換したいしかし、 :
sql = sql.Replace(",True,", ",1,").Replace(",True)", ",1)").Replace(",False,", ",0,").Replace(",False)", ",0)");
...それだけではない、すべてのそれらの... Falsesの一部を削除します。例えば、私はこれで終わる:
INSERT INTO SystemRules (Col1, Col2, Col3, Col4, Col5)
Values (0,False,1,0,False)
私が期待したもの
このでした:
sql = Regex.Replace(sql, ",True)", ",1)");
:それでは、私は(ちょうど1枚以下で示す)の代わりに正規表現を試してみてください
INSERT INTO SystemRules (Col1, Col2, Col3, Col4, Col5)
Values (0,0,1,0,0)
その特定の行がこのエラーで爆発する:
parsing ",True)" - Too many)'s.
すべてを置き換える最も効率的な方法は何ですか? 1sと0を持つSQL文のTruesとFalses?私はいつもstring.Replace()がC#でグローバルに置き換えられているのを見つけましたが、なぜそれが欠落しているのか困惑しています。そこには空白がありません、私は三重チェックしました。これの1つの証拠は、私が2回目の上記の一連の置換を実行すると、がストラッグラーを置き換えるということです。なぜ初めてではないのですか? C#replace
は本当にグローバルではありませんか?ありがとうございました。
で行う1することができますcol1Value == "True"?1:0' – ASpirin
あなたの '.Replace()'引数のどれもが前置詞なしで 'False'を許さないので、最初の' False'を '0'でも置き換える方法はわかりませんコンマ。 – itsme86
問題の再現を試みても、結果が得られません。問題のあなたの説明は正確ではありません:http://ideone.com/FzUE6c – JLRishe