Подключение к базе данных в C#: SQL Server и CRUD-операции
Работа с базой данных — ключевой навык для любого C#-разработчика. Это руководство показывает, как подключиться к Microsoft SQL Server, выполнять запросы и привязывать данные к элементам управления Windows Forms.
Основы подключения к БД
Независимо от того, используете ли вы Oracle, MySQL, MongoDB или Microsoft SQL Server, процесс подключения, запросов, вставки, обновления и удаления данных остаётся единообразным. В этом туториале мы сфокусируемся на SQL Server, используя бесплатный SQL Server Express.
- Строка подключения — содержит имя сервера, имя БД и учётные данные.
- Учётные данные — имя пользователя и пароль с необходимыми привилегиями.
- Опциональные параметры — например, таймаут подключения, шифрование.
SQL-команды в C#
Класс SqlCommand отправляет SQL-инструкции в базу данных. Используйте ExecuteReader для SELECT-запросов и ExecuteNonQuery для INSERT, UPDATE и DELETE.
Подключение C# к SQL Server
Ниже минимальный пример Windows Forms, устанавливающий соединение с базой Demodb под учётными данными sa / demo123. Обработчик клика кнопки открывает соединение, показывает сообщение и закрывает его.
Шаг 1: Создайте проект Windows Forms в Visual Studio. Шаг 2: Добавьте кнопку btnConnect с текстом "Connect". Шаг 3: Добавьте следующий обработчик события:
using System;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace DemoApplication1 {
public partial class Form1 : Form {
public Form1() => InitializeComponent();
private void btnConnect_Click(object sender, EventArgs e) {
string connectionString = "Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demo123";
using (SqlConnection conn = new SqlConnection(connectionString)) {
conn.Open();
MessageBox.Show("Connection Opened!");
conn.Close();
}
}
}
}
Запустите приложение, нажмите кнопку — появится подтверждающее сообщение.
Чтение данных с SqlDataReader
Предположим, таблица demotb существует с колонками TutorialID и TutorialName:
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.NET |
Используйте следующий код для выборки и отображения строк:
string sql = "SELECT TutorialID, TutorialName FROM demotb";
using (SqlCommand cmd = new SqlCommand(sql, conn))
using (SqlDataReader reader = cmd.ExecuteReader()) {
string output = "";
while (reader.Read()) {
output += $"ID: {reader["TutorialID"]}, Name: {reader["TutorialName"]}\n";
}
MessageBox.Show(output);
}
Вставка записи
Для добавления нового туториала (ID 3, Name VB.NET) выполните:
string insertSql = "INSERT INTO demotb (TutorialID, TutorialName) VALUES (3, 'VB.NET')";
using (SqlCommand cmd = new SqlCommand(insertSql, conn)) {
cmd.ExecuteNonQuery();
}
Обновление записи
Обновите туториал с ID 3 на "VB.NET Complete":
string updateSql = "UPDATE demotb SET TutorialName = 'VB.NET Complete' WHERE TutorialID = 3";
using (SqlCommand cmd = new SqlCommand(updateSql, conn)) {
cmd.ExecuteNonQuery();
}
Удаление записи
Удалите запись с ID 3:
string deleteSql = "DELETE FROM demotb WHERE TutorialID = 3";
using (SqlCommand cmd = new SqlCommand(deleteSql, conn)) {
cmd.ExecuteNonQuery();
}
Привязка элементов управления к данным
Windows Forms предлагает привязку данных, устраняя необходимость ручного обновления UI. Перетащите два TextBox на форму, назовите их txtID и txtName, и добавьте BindingNavigator.
Используйте мастер источников данных для создания проектного источника данных для demotb. Затем:
- Выберите
txtID, в окне свойств нажмите DataBindings → Text и привяжите кdemotbBindingSource – TutorialID. - Повторите для
txtNameсTutorialName. - Установите свойство
BindingNavigatorBindingSourceвdemotbBindingSource.
Запустите форму; текстовые поля покажут первую запись, а навигатор позволит перемещаться по строкам автоматически.
Отображение данных с DataGridView
Перетащите DataGridView на форму. В его свойствах установите DataSource в demotbBindingSource. Сетка заполнится всеми строками таблицы.
Резюме
- Подключение к SQL Server через
SqlConnectionи правильную строку подключения. - Выполнение CRUD-операций с
SqlCommandиExecuteNonQuery. - Чтение данных с
SqlDataReaderи обработка строк в циклеwhile. - Привязка UI-элементов к
BindingSourceдля автоматического отображения и навигации. - Использование
DataGridViewдля мгновенного представления табличных данных.
Язык C
- Понимание обфусцированных VPN‑серверов: как они работают и почему это важно
- Прямое подключение ультразвукового датчика LEGO Mindstorms NXT к Raspberry Pi
- Строки в C просто: объявление, ввод, вывод и библиотечные функции
- Использование realloc() в C: синтаксис, лучшие практики и пример
- Освоение функции free() в C: практическое руководство и пример
- Метод String.length() в Java: как получить длину строки (пример)
- Чтение файлов в Java с BufferedReader — Практическое руководство с примерами
- Укрепление цепочек поставок США: стратегическая роль внутренних портов
- Автоматизация серверов: от десктопных макросов к платформам FANG
- Подключение Haas ЧПУ к ПК или ноутбуку: Пошаговое руководство