など。次の例では:String.Formatで{0}の意味は何ですか?
string commandText = string.Format("Select * from {0}", filename);
上記はどのように機能しますか?
など。次の例では:String.Formatで{0}の意味は何ですか?
string commandText = string.Format("Select * from {0}", filename);
上記はどのように機能しますか?
{0}
は、最初のオブジェクトのプレースホルダーです。この場合はfilename
なので、{0}
の代わりに評価されるファイル名を挿入します。同様に、もちろん{1}
を使用することができ、渡された2番目のパラメータに置き換えられます。
これはfilenameの値を意味します。 Please see MSDN.
{0}
はString.Format
に渡される2番目のパラメータを指します。 {1}
たとえば等、第四に、第三に{2}
を指す:
String.Format("The {0} brown {1} jumps {2} the {3} dog.", "quick", "fox", "over", "lazy")
は、“Select * from {0}”
後提示引数にインデクサとフォーマット指定と組み合わせることができる
"The quick brown fox jumps over the lazy dog."
と評価します同じように。 String.Format Methodのドキュメントを参照してください。しかし、このようにSQLコマンドを作成することは決してであるため、SQL Injection攻撃の影響を受けます。常にSQLクエリをパラメータ化する必要があります。 MSDNのHow To: Protect From SQL Injection in ASP.NETの記事を参照してください。
{0}
は、フォーマット文字列の後に渡される最初の引数への参照です。
あなたの場合は、"Select * from {0}"
がフォーマット文字列で、filename
が最初の引数です。
String.Format("Select * from {0}{1}{0}","this","database")
を返します:
"Select * from thisdatabasethis"
Googleの "String.Formatの" 例として
? – Joe
SQLインジェクション攻撃のベクターを提供します。 – Andrew
それは[複合フォーマット](http://msdn.microsoft.com/en-us/library/txafckwd.aspx)と呼ばれています(この種の質問のための便利なサイトであるMSDNのものです) –