Поделиться через


Вставка новых записей в базу данных в приложениях платформа .NET Framework

Чтобы вставить новые записи в базу данных с ADO.NET в проекте платформа .NET Framework, распространенный подход — использовать методы TableAdapter. TableAdapters обеспечивают взаимодействие между приложением и базой данных. Они предоставляют различные способы вставки новых записей в базу данных в зависимости от требований приложения. Вы можете использовать TableAdapter.Update метод или один из методов DBDirect TableAdapter TableAdapter.Insert частности, метод).

В этой статье описывается, как вставить записи в базу данных для приложения, созданного с помощью ADO.NET и платформа .NET Framework с помощью Visual Basic (VB) или C#. Если конфигурация приложения использует Entity Framework 6, см. статью "Добавление новой сущности в контекст" или "Entity Framework Core", см. статью "Добавление данных".

Примечание.

Наборы данных и связанные классы являются устаревшими технологиями платформа .NET Framework с начала 2000-х годов, которые позволяют приложениям работать с данными в памяти во время отключения приложений от базы данных. Технологии особенно полезны для приложений, которые позволяют пользователям изменять данные и сохранять изменения обратно в базу данных. Хотя наборы данных оказались очень успешными, мы рекомендуем новым приложениям .NET использовать Entity Framework Core. Entity Framework предоставляет более естественный способ работы с табличными данными в виде объектных моделей, и он имеет более простой интерфейс программирования.

Необходимые компоненты

  • Для работы с методами TableAdapter необходимо иметь доступный экземпляр. Дополнительные сведения см. в статье "Создание и настройка TableAdapters" в приложениях платформа .NET Framework.

  • Безопасность .NET: у вас должен быть доступ к базе данных, к к которому вы пытаетесь подключиться, и разрешение на вставку в нужную таблицу.

Выбор метода вставки

Существуют различные подходы для вставки записей в базу данных в зависимости от сценария приложения. В следующей таблице перечислены параметры:

Сценарий Подход Примечания.
Приложение использует наборы данных для хранения данных Используйте метод TableAdapter.Update для отправки всех изменений в базу данных. Изменения включают обновления, вставки и удаления.
Приложение использует объекты для хранения данных Использование метода TableAdapter.Insert для вставки новых записей в базу данных Такой подход позволяет более точно контролировать создание новых записей.
Приложение использует TableAdapters, Insert метод недоступен Задайте для свойства true TableAdapter значение из конструктора наборов данных и сохраните набор данных для повторного создания TableAdapter GenerateDBDirectMethods Если в TableAdapter нет Insert метода, tableAdapter либо настроен для использования хранимых процедур, либо GenerateDBDirectMethods для свойства задано falseзначение .
Insert Если метод остается недоступным после повторного создания TableAdapter, таблица, вероятно, не предоставляет достаточно сведений о схеме, чтобы различать отдельные строки (например, в таблице может быть не задан первичный ключ).
Приложение не использует TableAdapters Использование объектов команд для вставки новых записей в базу данных Пример: SqlCommand

Вставка новых записей с помощью TableAdapters

Если приложение использует наборы данных для хранения данных, можно добавить новые записи в нужный DataTable набор данных, а затем вызвать TableAdapter.Update метод. Метод TableAdapter.Update отправляет все изменения в DataTable базу данных, включая измененные и удаленные записи.

Вставка новых записей с помощью метода TableAdapter.Update

В следующей процедуре показано, как вставить новые записи в базу данных с помощью TableAdapter.Update метода:

  1. Добавьте новые записи в нужное DataTable , создав новую DataRow и добавив ее в коллекцию Rows .

  2. После добавления новых строк в DataTableметод вызовите TableAdapter.Update метод. Вы можете контролировать объем данных для обновления, передав одно из следующих значений параметров:

    В следующем коде показано, как добавить новую запись в базу DataTable данных, а затем вызвать TableAdapter.Update метод для сохранения новой строки в базе данных. В этом примере используется Region таблица в базе данных Northwind.

    // Create a new row.
    NorthwindDataSet.RegionRow newRegionRow;
    newRegionRow = northwindDataSet.Region.NewRegionRow();
    newRegionRow.RegionID = 5;
    newRegionRow.RegionDescription = "NorthWestern";
    
    // Add the row to the Region table
    this.northwindDataSet.Region.Rows.Add(newRegionRow);
    
    // Save the new row to the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

Вставка новых записей с помощью метода TableAdapter.Insert

Если приложение использует объекты для хранения данных, можно использовать TableAdapter.Insert метод для создания новых строк непосредственно в базе данных. Метод Insert принимает отдельные значения для каждого столбца в качестве параметров. При вызове метода новая запись вставляется в базу данных со значениями переданных параметров.

  • Вызовите метод TableAdapter Insert и передайте значения для каждого столбца в качестве параметров.

В следующей TableAdapter.Insert процедуре показано, как использовать метод для вставки строк. В этом примере данные вставляются в таблицу Region в базе данных Northwind.

Примечание.

Если у вас нет доступного экземпляра, создайте экземпляр TableAdapter, который вы хотите использовать.

NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
    new NorthwindDataSetTableAdapters.RegionTableAdapter();

regionTableAdapter.Insert(5, "NorthWestern");

Вставка новых записей с объектами команд

Новые записи можно вставить непосредственно в базу данных с помощью объектов команд.

  • Создайте объект команды, а затем задайте его ConnectionCommandTypeсвойства и CommandText свойства.

В следующей процедуре показано, как вставить записи в базу данных с помощью объекта команды. В этом примере данные вставляются в таблицу Region в базе данных Northwind.

System.Data.SqlClient.SqlConnection sqlConnection1 = 
    new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')";
cmd.Connection = sqlConnection1;

sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();