C# と .NET 3.5 を使用しています。後でリモート サーバーで実行されるいくつかの T-SQL 挿入ステートメントを生成して保存する必要があります。
たとえば、従業員の配列があります。
new Employee[]
{
new Employee { ID = 5, Name = "Frank Grimes" },
new Employee { ID = 6, Name = "Tim O'Reilly" }
}
次のように、文字列の配列で終わる必要があります。
"INSERT INTO Employees (id, name) VALUES (5, 'Frank Grimes')",
"INSERT INTO Employees (id, name) VALUES (6, 'Tim O''Reilly')"
String.Format を使用して挿入ステートメントを作成するコードを見ていますが、それは正しくありません。SqlCommand の使用を検討しましたが (このようなことを望んでいます)、コマンド テキストとパラメーターを組み合わせる方法は提供されていません。
一重引用符を置き換えて文字列を作成するだけで十分ですか?
string.Format("INSERT INTO Employees (id, name) VALUES ({0}, '{1}')",
employee.ID,
replaceQuotes(employee.Name)
);
これを行うとき、私は何を気にする必要がありますか? ソース データはかなり安全ですが、あまり多くの仮定を置きたくありません。
編集: この場合、SqlConnection または SQL Server に直接接続する方法がないことを指摘したいだけです。この特定のアプリは、SQL ステートメントを生成し、それらを別の場所で実行するためにキューに入れる必要があります。それ以外の場合は、SqlCommand.Parameters.AddWithValue() を使用します。