В C# установление соединения с базой данных является фундаментальным шагом в работе с приложениями, управляемыми данными. Класс SqlConnection из пространства имен System.Data.SqlClient предоставляет необходимые функциональные возможности для подключения к базам данных Microsoft SQL Server. В этой статье вы узнаете, как использовать SqlConnection, включая настройку соединения, выполнение запросов и эффективную обработку ресурсов.

Настройка SqlConnection

Перед работой с базой данных необходимо установить соединение с помощью класса SqlConnection. Вот как вы можете это сделать:

using System;
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))
        {
            try
            {
                connection.Open();
                Console.WriteLine("Connection opened successfully.");
                // Perform database operations here
                connection.Close();
                Console.WriteLine("Connection closed.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }
    }
}

Замените заполнители в connectionString фактическими данными вашего сервера, базы данных, имени пользователя и пароля. Оператор using гарантирует, что соединение будет правильно закрыто и ресурсы будут освобождены, когда они больше не нужны.

Выполнение запросов

После подключения вы можете выполнять SQL-запросы, используя класс SqlCommand. Вот пример запроса данных из таблицы:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    try
    {
        connection.Open();
string query = "SELECT FirstName, LastName FROM Customers";
        using (SqlCommand command = new SqlCommand(query, connection))
        {
            using (SqlDataReader reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    string firstName = reader["FirstName"].ToString();
                    string lastName = reader["LastName"].ToString();
                    Console.WriteLine($"Name: {firstName} {lastName}");
                }
            }
        }
        connection.Close();
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error: " + ex.Message);
    }
}

В этом примере запрос SELECT извлекает данные из таблицы «Клиенты», и полученная информация отображается.

Параметризованные запросы

По соображениям безопасности и производительности рекомендуется использовать параметризованные запросы для предотвращения атак с использованием SQL-инъекций:

string query = "SELECT ProductName, Price FROM Products WHERE Category = @Category";
using (SqlCommand command = new SqlCommand(query, connection))
{
    command.Parameters.AddWithValue("@Category", "Electronics");
using (SqlDataReader reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            string productName = reader["ProductName"].ToString();
            decimal price = Convert.ToDecimal(reader["Price"]);
            Console.WriteLine($"Product: {productName}, Price: {price:C}");
        }
    }
}

Заключение

Класс SqlConnection — это жизненно важный компонент для подключения приложений C# к базам данных SQL Server. Правильно используя его возможности, вы можете эффективно взаимодействовать с базами данных, выполнять запросы и управлять соединениями. Не забывайте следовать передовым практикам, таким как использование параметризованных запросов, чтобы обеспечить безопасность и надежность ваших приложений, управляемых данными.

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