Я использую C # и .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')"
Я смотрю на некоторый код, который создает операторы вставки с помощью 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 ()