我正在使用 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()