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

Примечание.

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

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

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

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

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

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

Примечание.

Эта статья относится к ADO.NET и разработке платформа .NET Framework. Для той же задачи с Entity Framework 6 см. статью "Добавление новой сущности в контекст". Сведения о Entity Framework Core см. в разделе "Добавление данных".

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

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

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

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

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

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

    В следующем коде показано, как добавить новую запись в базу 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();

Безопасность в .NET

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