В области программирования на C# эффективное извлечение данных и манипулирование ими из базы данных являются фундаментальными задачами для создания надежных приложений. Класс SqlDataAdapter
, являющийся частью пространства имен System.Data.SqlClient
, предлагает мощный механизм, позволяющий устранить разрыв между базами данных и вашим кодом C#. В этой статье рассматривается использование SqlDataAdapter
, демонстрируя, как извлекать данные из базы данных, манипулировать ими и поддерживать синхронизацию базовой базы данных.
Получение данных с помощью SqlDataAdapter
Класс SqlDataAdapter
упрощает процесс извлечения данных из базы данных и заполнения их в структуры данных C#. Вот как вы можете его использовать:
using System; using System.Data; using System.Data.SqlClient; class Program { static void Main(string[] args) { string connectionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=Username;Password=Password"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string query = "SELECT ProductID, ProductName, Price FROM Products"; using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection)) { DataSet dataSet = new DataSet(); adapter.Fill(dataSet, "Products"); DataTable productsTable = dataSet.Tables["Products"]; foreach (DataRow row in productsTable.Rows) { Console.WriteLine($"ID: {row["ProductID"]}, Name: {row["ProductName"]}, Price: {row["Price"]}"); } } connection.Close(); } } }
В этом примере SqlDataAdapter
используется для извлечения данных из таблицы «Продукты» и заполнения их в DataSet
. Затем данные извлекаются и обрабатываются с помощью DataTable
.
Обновление базы данных с помощью SqlDataAdapter
SqlDataAdapter
также позволяет вам манипулировать данными и впоследствии обновлять базовую базу данных:
using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string query = "SELECT ProductID, ProductName, Price FROM Products"; string updateQuery = "UPDATE Products SET Price = @NewPrice WHERE ProductID = @ProductID"; using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection)) { using (SqlCommandBuilder builder = new SqlCommandBuilder(adapter)) { DataSet dataSet = new DataSet(); adapter.Fill(dataSet, "Products"); DataTable productsTable = dataSet.Tables["Products"]; foreach (DataRow row in productsTable.Rows) { int productId = Convert.ToInt32(row["ProductID"]); decimal newPrice = Convert.ToDecimal(row["Price"]) + 10.00M; row["Price"] = newPrice; SqlCommand updateCommand = new SqlCommand(updateQuery, connection); updateCommand.Parameters.AddWithValue("@NewPrice", newPrice); updateCommand.Parameters.AddWithValue("@ProductID", productId); adapter.UpdateCommand = updateCommand; adapter.Update(dataSet, "Products"); } } } connection.Close(); }
В этом примере SqlDataAdapter
используется для выборки данных, а SqlCommandBuilder
облегчает создание необходимых операторов SQL для обновления. Обновленные данные затем синхронизируются с базой данных с помощью метода Update
.
Заключение
Класс SqlDataAdapter
— это жизненно важный компонент программирования баз данных на C#, предоставляющий удобный способ извлечения, манипулирования и синхронизации данных между вашим приложением и базой данных. Умело используя возможности SqlDataAdapter
, вы можете создавать управляемые данными приложения, которые эффективно взаимодействуют с базами данных, сохраняя при этом целостность и согласованность данных. Не забывайте придерживаться лучших практик, таких как использование транзакций при необходимости, чтобы обеспечить безопасность и надежность ваших операций с данными.
Спасибо, что дочитали до конца. Пожалуйста, подумайте о том, чтобы подписаться на автора и эту публикацию. Посетите Stackademic, чтобы узнать больше о том, как мы демократизируем бесплатное образование в области программирования во всем мире.