Я использую С# и .NET 3.5. Мне нужно сгенерировать и сохранить некоторые инструкции вставки T-SQL, которые будут выполняться позже на удаленном сервере.
Например, у меня есть массив Employees:
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')"
Я просматриваю код, который создает инструкции insert в String.Format, но это не так. Я рассматривал использование SqlCommand (надеясь сделать что-то вроде этого), но он не предлагает способ комбинировать текст команды с параметрами.
Достаточно ли просто заменить одиночные кавычки и построить строку?
string.Format("INSERT INTO Employees (id, name) VALUES ({0}, '{1}')",
employee.ID,
replaceQuotes(employee.Name)
);
Что мне следует беспокоиться о том, когда вы это делаете? Исходные данные достаточно безопасны, но я не хочу делать слишком много предположений.
EDIT: просто хочу указать, что в этом случае у меня нет SqlConnection или любого способа прямого подключения к SQL Server. Это конкретное приложение должно генерировать операторы sql и ставить их в очередь для выполнения где-то в другом месте - иначе я бы использовал SqlCommand.Parameters.AddWithValue()