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


Практическое руководство. Вставка новых записей в базу данных

Обновлен: Ноябрь 2007

Для вставки новых записей в базу данных можно использовать метод TableAdapter.Update или один из методов адаптера таблиц DBDirect (в частности метод TableAdapter.Insert). Дополнительные сведения см. в разделе Общие сведения об адаптере таблиц.

Если приложение не использует адаптеры таблиц, то для взаимодействия и вставки новых записей в базе данных можно использовать командные объекты (например SqlCommand).

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

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

Если адаптер таблиц не имеет метода Insert, это означает, что либо он настроен на использование сохраненных процедур, или свойство GenerateDBDirectMethods имеет значение false. Попробуйте присвоить свойству GenerateDBDirectMethods адаптера таблиц TableAdapter значение true из Конструктора наборов данных и затем сохранить набор данных, чтобы заново создать адаптер таблиц. Если адаптер таблиц по-прежнему не имеет метода Insert, то таблица, скорее всего, не предоставляет достаточно сведений о схеме для различения отдельных строк (например нет первичного ключа).

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

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

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

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

  1. Добавьте новые записи в нужные таблицы DataTable путем создания новых строк DataRow и добавления их к коллекции Rows. Дополнительные сведения см. в разделе Практическое руководство. Добавление строк в объект DataTable.

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

    Следующий фрагмент кода иллюстрирует добавление новой записи в DataTable и вызов метода TableAdapter.Update, чтобы сохранить новую строку в базе данных. (В этом примере используется таблица Region базы данных "Борей").

    ' Create a new row.
    Dim newRegionRow As NorthwindDataSet.RegionRow
    newRegionRow = Me.NorthwindDataSet._Region.NewRegionRow()
    newRegionRow.RegionID = 5
    newRegionRow.RegionDescription = "NorthWestern"
    
    ' Add the row to the Region table
    Me.NorthwindDataSet._Region.Rows.Add(newRegionRow)
    
    ' Save the new row to the database
    Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
    
    // 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. Метод Insert принимает отдельные значения для каждого столбца в качестве параметров. При вызове метода новая запись вставляется в базу данных с передаваемыми значениями параметров.

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

Для вставки новых записей в базу данных с помощью метода TableAdapter.Insert:

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

    ms233812.alert_note(ru-ru,VS.90).gifПримечание.

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

    Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter
    
    regionTableAdapter.Insert(5, "NorthWestern")
    
    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Insert(5, "NorthWestern");
    

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

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

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

Для вставки новых записей в базу данных с помощью командных объектов:

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

    Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING")
    
    Dim cmd As 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()
    
    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();
    

Безопасность

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

См. также

Задачи

Практическое руководство. Удаление записей из базы данных

Практическое руководство. Обновление записей в базе данных

Практическое руководство. Сохранение данных из объекта в базе данных

Другие ресурсы

Начало работы с доступом к данным

Подключение к данным в Visual Studio

Подготовка приложения к получению данных

Выборка данных в приложение

Отображение данных на форме в приложениях Windows

Редактирование данных в приложении

Проверка данных

Сохранение данных