Вставка одной строки с большим количеством столбцов в SQL Server
У меня есть огромная форма, которая имеет около 110 поля столбцы (одна строка), которые необходимо сохранить в базе данных.
Каков наилучший подход для вставки этих многочисленных столбцов в базу данных с использованием ADO.NET?
Я не думаю, что мне следует использовать такой оператор вставки, так как запрос будет очень большим из-за количества полей.
conn.Open();
string insertString = @"
insert into Categories (CategoryName, Description)
values ('Miscellaneous', 'Whatever doesn''t fit elsewhere')";
SqlCommand cmd = new SqlCommand(insertString, conn);
cmd.ExecuteNonQuery();
Я думаю о том, чтобы сбросить данные во временный файл, а затем добавить их в таблицу данных, а затем вставить их в базу данных с помощью SqlBulkCopy.
Есть ли лучший подход? Как бы вы справились с этой ситуацией?
1 ответ
Боюсь, что для вставки такого количества столбцов нет подходящего ярлыка, но использование параметров, скорее всего, сэкономит время на отладку. Используя параметры, вам не нужно беспокоиться о таких вещах, как апострофы в строках и преобразованиях типов. Вот пример:
public static void TryThis()
{
try
{
using (SqlConnection con = new SqlConnection())
{
con.ConnectionString = "YourConnectionString";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO Categories (CategoryName, Description) VALUES (@CategoryName, @Description)";
cmd.Parameters.AddWithValue("CategoryName", "Miscellaneous");
cmd.Parameters.AddWithValue("Description", "Whatever doesn't fit elsewhere");
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}