Вставка одной строки с большим количеством столбцов в SQL Server - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть огромная форма, которая содержит около 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 Ответ

1 голос
/ 08 февраля 2012

Боюсь, что для вставки такого количества столбцов нет подходящего ярлыка, но использование параметров, скорее всего, сэкономит время на отладку. Используя параметры, вам не нужно беспокоиться о таких вещах, как апострофы в строках и преобразованиях типов. Вот образец:

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);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...