Вставка новых записей в базу данных в приложениях платформа .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
метода:
Добавьте новые записи в нужное DataTable , создав новую DataRow и добавив ее в коллекцию Rows .
После добавления новых строк в 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");
Вставка новых записей с объектами команд
Новые записи можно вставить непосредственно в базу данных с помощью объектов команд.
- Создайте объект команды, а затем задайте его
Connection
CommandType
свойства и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();