Вставка, оновлення, видалення: підключення до бази даних ASP.NET
⚡ Розумний підсумок
ASP.NET підключається до баз даних, таких як SQL Server та Oracle через ADO.NET, використовуючи класи SqlConnection, SqlCommand, SqlDataReader та SqlDataAdapter для відкриття з’єднання та виконання операцій вибору, вставки, оновлення та видалення для збережених записів.
Доступ до даних з бази даних є важливим аспектом будь-якої мови програмування. Для будь-якої мови програмування необхідно мати можливість працювати з базами даних.
ASP.NET має можливість працювати з різними типами баз даних. Він може працювати з найпоширенішими базами даних, такими як Oracle та Microsoft SQL Сервер.
Він також має можливість працювати з новими формами баз даних, такими як MongoDB та MySQL.
Основи підключення до баз даних
ASP.NET має можливість працювати з більшістю баз даних, найпоширенішими з яких є Oracle та Microsoft SQL Server. Але з кожною базою даних логіка роботи з усіма ними здебільшого однакова.
У наших прикладах ми розглянемо роботу з Microsoft SQL Server як наша база даних. Для навчальних цілей можна завантажити та використовувати Microsoft SQL Server Експрес-версія. Це безкоштовне програмне забезпечення для роботи з базами даних, що надається Microsoft.
Під час роботи з базами даних такі концепції є спільними для всіх баз даних:
- Connection – Щоб працювати з даними в базі даних, першим очевидним кроком є підключення. Підключення до бази даних зазвичай складається з наведених нижче параметрів.
- Назва бази даних або джерело даних – Першим важливим параметром є назва бази даних. Кожне підключення може одночасно працювати лише з однією базою даних.
- Повноваження – Наступний важливий аспект – це ім’я користувача та пароль. Вони використовуються для встановлення з’єднання з базою даних.
- Додаткові параметри – Ви можете вказати додаткові параметри, які вказують, як .NET має обробляти підключення до бази даних. Наприклад, можна вказати параметр, який визначає, як довго з’єднання має залишатися активним.
- Вибір даних з бази даних – Після встановлення з’єднання дані витягуються з бази даних. ASP.NET має можливість виконувати команду SQL select для бази даних. Оператор SQL можна використовувати для вилучення даних з певної таблиці в базі даних.
- Внесення даних до бази даних – ASP.NET використовується для вставки записів у базу даних. Значення для кожного рядка, який потрібно вставити в базу даних, задаються в ASP.NET.
- Оновлення даних в базі даних – ASP.NET також можна використовувати для оновлення існуючих записів у базі даних. Нові значення можна вказати в ASP.NET для кожного рядка, який потрібно оновити в базі даних.
- Видалення даних з бази даних – ASP.NET також можна використовувати для видалення записів з бази даних. Код написано для видалення певного рядка з бази даних.
Тепер, коли ми розглянули теоретичну частину кожної операції, давайте розглянемо, як виконувати операції з базою даних в ASP.NET.
Підключення до бази даних ASP.NET
Давайте тепер розглянемо код, який потрібно зберегти для створення підключення до бази даних. У нашому прикладі ми підключимося до бази даних з назвою Demodb. Облікові дані, що використовуються для підключення до бази даних, наведено нижче:
- Ім'я користувача – sa
- Пароль – demo123
Давайте попрацюємо з нашим поточним веб-застосунком, створеним у попередніх розділах.
- Почніть додавати до нього операції з базою даних.
- У нашому прикладі розглядається встановлення простого з’єднання. Це з’єднання встановлюється з базою даних Demodb. Це робиться під час першого запуску сторінки.
- Коли з'єднання буде встановлено, користувачеві буде надіслано повідомлення. У повідомленні буде вказано, що з’єднання встановлено.
Давайте виконаємо наведені нижче кроки, щоб досягти цього.
Крок 1) Спочатку переконаємося, що ваш вебзастосунок (DemoApplication) відкрито у Visual Studio. Double- клацніть файл demo.aspx.cs, щоб ввести код для підключення до бази даних.
Крок 2) Додайте наведений нижче код, який використовуватиметься для встановлення з’єднання з базою даних.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connectionString; SqlConnection cnn; connectionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demo123"; cnn = new SqlConnection(connectionString); cnn.Open(); Response.Write("Connection Made"); cnn.Close(); } } }
Code Пояснення:
- Перший крок – створення змінних. Вони будуть використані для створення рядка підключення та підключення до бази даних SQL Server.
- Наступним кроком є створення рядка підключення. Рядок підключення складається з таких частин:
- Джерело даних – це ім’я сервера, на якому знаходиться база даних. У нашому випадку вона знаходиться на машині під назвою WIN-50GP30FGO75.
- Початковий каталог використовується для визначення імені бази даних.
- Ідентифікатор користувача та пароль – це облікові дані, необхідні для підключення до бази даних.
- Далі ми присвоюємо рядок підключення змінній cnn.
- Змінна cnn має тип SqlConnection. Це використовується для встановлення з’єднання з базою даних.
- SqlConnection — це клас в ASP.NET, який використовується для створення підключення до бази даних.
- Щоб використовувати цей клас, спочатку потрібно створити об'єкт цього класу. Отже, тут ми створюємо змінну з назвою cnn, яка має тип SqlConnection.
- Далі ми використовуємо метод Open змінної cnn для відкриття з'єднання з базою даних. Ми відображаємо користувачеві повідомлення про встановлення з'єднання. Це робиться за допомогою методу Response.Write. Після цього ми закриваємо з'єднання з базою даних.
Коли наведений вище код встановлено, а проект виконується за допомогою Visual Studio, ви отримаєте наведений нижче результат. Після відображення форми натисніть кнопку «Підключитися».
Вихід:-
Вихідне повідомлення, яке відобразиться у браузері, покаже, що підключення до бази даних встановлено.
Читання бази даних ASP.NET за допомогою SqlDataReader
Щоб показати дані, до яких було отримано доступ за допомогою ASP.NET, припустимо, що в нашій базі даних є такі артефакти.
- Таблиця під назвою demotb. Ця таблиця буде використовуватися для зберігання ідентифікаторів та назв різних навчальних посібників.
- Таблиця матиме два стовпці: один з назвою TutorialID, а інший – TutorialName.
- Наразі таблиця матиме два рядки, як показано нижче.
| ID підручника | ПідручникName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Давайте змінимо код так, щоб ми могли запитувати ці дані та відображати інформацію на самій веб-сторінці. Зверніть увагу, що введений код є продовженням коду, написаного для модуля підключення до даних.
Крок 1) Давайте розділимо код на дві частини:
- Першою частиною буде створення нашого оператора select. Він буде використаний для зчитування даних з бази даних.
- Потім ми виконаємо оператор select для бази даних. Це відповідно вибере всі рядки таблиці.
Code Пояснення:
- Першим кроком є створення наступних змінних:
- SqlCommand – SqlCommand – це клас, визначений у C#. Цей клас використовується для виконання операцій читання та запису в базу даних.
- Об’єкт DataReader використовується для отримання всіх даних, визначених SQL-запитом. Потім ми можемо прочитати всі рядки таблиці один за одним за допомогою зчитувача даних.
- Потім ми визначаємо дві строкові змінні. Одна — sql, для зберігання нашого рядка SQL-команди. Наступна — Output, яка міститиме всі значення таблиці.
- Наступний крок – це визначення SQL-інструкції. У нашому випадку це «Select TutorialID, TutorialName from demotb». Це призведе до отримання всіх рядків з таблиці demotb.
- Далі ми створюємо командний об’єкт, який використовується для виконання оператора SQL щодо бази даних. У команді SQL ви повинні передати об’єкт підключення та рядок SQL.
- Далі ми виконуємо команду читання даних, яка вибере всі рядки з таблиці demotb.
- Тепер, коли у нас є всі рядки таблиці, нам потрібен механізм для доступу до рядків по одному.
- Для цього ми використовуємо оператор while для поочергового доступу до рядків зчитувача даних.
- Потім ми використовуємо метод GetValue, щоб отримати значення TutorialID та TutorialName.
Крок 2) На останньому кроці ми відображаємо вивід користувачеві. Потім ми закриваємо всі об'єкти, пов'язані з операцією з базою даних.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Code Пояснення:
- Ми продовжуємо наш код, виводячи значення змінної Output. Це робиться за допомогою методу Response.Write.
- Нарешті ми закриваємо всі об'єкти, пов'язані з нашою операцією з базою даних. Пам'ятайте, що це завжди гарна практика.
Коли наведений вище код встановлено, а проєкт запущено за допомогою Visual Studio, ви отримаєте наведений нижче результат.
Вихід:-
З результату ви можете чітко побачити, що програма змогла отримати значення з бази даних. Потім дані відображаються користувачеві в браузері.
Вставте запис бази даних за допомогою InsertCommand
Так само, як і при доступі до даних, ASP.NET також має можливість вставляти записи в базу даних. Візьмемо ту саму структуру таблиці, яка використовується для вставки записів.
| ID підручника | ПідручникName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Давайте змінимо код у нашій формі, щоб ми могли вставити наступний рядок у таблицю:
| ID підручника | ПідручникName |
|---|---|
| 3 | VB.Net |
Крок 1) Як перший крок, додамо наступний код до нашої програми. Фрагмент коду нижче буде використано для вставки запису в нашу базу даних.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Insert into demotb(TutorialID,TutorialName) values(3,'VB.Net')"; command = new SqlCommand(sql, cnn); adapter.InsertCommand = new SqlCommand(sql, cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Пояснення:
- Першим кроком є створення наступних змінних:
- SqlCommand – цей тип даних використовується для визначення об'єктів, які виконують SQL-операції з базою даних. Цей об'єкт міститиме SQL-команду, яка виконуватиметься з нашою базою даних SQL Server.
- Об'єкт DataAdapter використовується для виконання команд SQL вставки, видалення та оновлення.
- Потім ми визначаємо рядкову змінну, тобто sql, для зберігання нашого рядка команди SQL.
- Наступний крок – це фактичне визначення SQL-інструкції. У нашому випадку ми виконуємо інструкцію вставки. Вона вставить запис TutorialID=3 та TutorialName=VB.Net.
- Далі ми створюємо командний об’єкт, який використовується для виконання оператора SQL щодо бази даних. У команді SQL ви повинні передати об’єкт підключення та рядок SQL.
- У нашій команді адаптера даних:
- Зв’яжіть команду insert SQL з адаптером.
- Потім видайте метод ExecuteNonQuery. Він використовується для виконання оператора insert у нашій базі даних.
- Метод ExecuteNonQuery використовується в C# видавати будь-які оператори DML (операції вставки, видалення та оновлення) щодо бази даних.
- Нарешті ми закриваємо всі об'єкти, пов'язані з нашою операцією з базою даних. Пам'ятайте, що це завжди гарна практика.
Крок 2) Як другий крок, додамо той самий код, що й у розділі доступу до даних. Це потрібно для відображення останніх даних таблиці у браузері. Для цього ми додамо наведений нижче код до файлу demo.aspx.cs.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Коли наведений вище код встановлено, а проєкт виконано у Visual Studio, ви отримаєте наведений нижче результат.
Вихід:-
У вікні браузера ви побачите, що рядок успішно вставлено в базу даних.
Оновіть запис бази даних за допомогою UpdateCommand
ASP.NET має можливість оновлювати існуючі записи в базі даних. Візьмемо ту саму структуру таблиці, яка використовувалася вище для прикладу вставки записів.
| ID підручника | ПідручникName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net |
Давайте змінимо код у нашій формі, щоб ми могли оновити наступний рядок. Старе значення рядка TutorialID – 3, а TutorialName – VB.Net, яке ми оновимо до «VB.Net Complete», тоді як значення рядка TutorialID залишиться незмінним.
Старий ряд
| ID підручника | ПідручникName |
|---|---|
| 3 | VB.Net |
Новий ряд
| ID підручника | ПідручникName |
|---|---|
| 3 | VB.Net Complete |
Крок 1) Як перший крок, додамо наступний код до нашої програми. Фрагмент коду нижче буде використано для оновлення існуючого запису в нашій базі даних.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Update demotb set TutorialName='VB.Net Complete' where TutorialID=3"; command = new SqlCommand(sql, cnn); adapter.InsertCommand = new SqlCommand(sql, cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Пояснення:
- Першим кроком є створення наступних змінних:
- SqlCommand – цей тип даних використовується для визначення об'єктів для виконання SQL-операцій з базою даних. Цей об'єкт міститиме SQL-команду, яка виконуватиметься з нашою базою даних SQL Server.
- Об'єкт DataAdapter використовується для виконання команд SQL вставки, видалення та оновлення.
- Потім ми визначаємо рядкову змінну, тобто sql, для зберігання нашого рядка команди SQL.
- Наступний крок – це фактичне визначення SQL-інструкції. У нашому випадку ми виконуємо інструкцію оновлення. Це оновить TutorialName до «VB.Net Complete». TutorialID залишиться незмінним, а значення дорівнюватиме 3.
- Далі ми створюємо об'єкт команди. Він використовується для виконання SQL-інструкції для бази даних. У SQL-команді ви передаєте об'єкт підключення та рядок SQL.
- У нашій команді адаптера даних ми пов'язуємо SQL-команду з нашим адаптером. Потім ми виконуємо метод ExecuteNonQuery. Він використовується для виконання оператора оновлення для нашої бази даних.
- Нарешті ми закриваємо всі об'єкти, пов'язані з нашою операцією з базою даних. Пам'ятайте, що це завжди гарна практика.
Крок 2) Як другий крок, додамо той самий код, що й у розділі доступу до даних. Це потрібно для відображення останніх даних таблиці у браузері. Для цього ми додамо наведений нижче код.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Коли наведений вище код встановлено, а проєкт виконано за допомогою Visual Studio, ви отримаєте наведений нижче результат.
Вихід:-
У вікні браузера ви побачите, що рядок успішно оновлено в базі даних.
Видалити запис бази даних за допомогою DeleteCommand
ASP.NET може видаляти існуючі записи з бази даних. Візьмемо ту саму структуру таблиці, яка використовувалася вище для прикладу видалення записів.
| ID підручника | ПідручникName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net Complete |
Давайте змінимо код у нашій формі, щоб ми могли видалити наступний рядок:
| ID підручника | ПідручникName |
|---|---|
| 3 | VB.Net Complete |
Крок 1) Як перший крок, додамо наступний код до нашої програми. Фрагмент коду нижче буде використано для видалення існуючого запису в нашій базі даних.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Delete demotb where TutorialID=3"; command = new SqlCommand(sql, cnn); adapter.DeleteCommand = new SqlCommand(sql, cnn); adapter.DeleteCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Пояснення:
- Ключова відмінність у цьому коді полягає в тому, що тепер ми виконуємо SQL-інструкцію delete. Оператор delete використовується для видалення рядка в таблиці demotb, у якій TutorialID має значення 3.
- У нашій команді адаптера даних ми пов'язуємо SQL-команду delete з нашим адаптером. Ми також видаємо метод ExecuteNonQuery, який використовується для виконання оператора delete для нашої бази даних.
Крок 2) Як другий крок, додамо той самий код, що й у розділі доступу до даних. Це потрібно для відображення останніх даних таблиці у браузері. Для цього ми додамо наведений нижче код.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Коли наведений вище код встановлено, а проєкт виконано за допомогою Visual Studio, ви отримаєте наведений нижче результат.
Вихід:-
Підключення елементів керування ASP.NET до даних
Ми розглянули, як можна використовувати команди ASP.NET, такі як SqlCommand та SqlDataReader, для отримання даних з бази даних. Ми також побачили, як можна зчитувати кожен рядок таблиці та відображати його на веб-сторінці.
Існують методи для безпосереднього зв'язування елементів керування з різними полями в таблиці. Наразі лише наведені нижче елементи керування можна прив'язати до ASP.NET-застосунку:
- перевіритиBoxсписок
- RadioButtonList
- Випадаючий список
- списокBox
Отже, давайте розглянемо приклад того, як ми можемо використовувати прив'язку елементів керування в ASP.NET. Тут ми візьмемо списокBox приклад. Припустимо, що в нашій базі даних є такі дані.
| ID підручника | ПідручникName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net Complete |
Давайте скористаємося СписокомBox керування та подивимося, як він може автоматично збирати дані з нашої таблиці demotb. Давайте виконаємо наведені нижче кроки для досягнення цього.
Крок 1) Створіть базову веб-форму. З інструментарію Visual Studio перетягніть 2 компоненти – labels та ListBoxес. Потім виконайте такі підкроки:
- Введіть текстове значення першої мітки як TutorialID.
- Введіть текстове значення другої мітки як Назва_навчального_урока.
Нижче показано, як виглядатиме форма після виконання вищезазначених кроків.
Крок 2) Наступний крок – почати з’єднувати кожен списокBox до таблиці бази даних.
- Спочатку натисніть на СписокBox для TutorialID. Це відкриє ще одне діалогове вікно збоку від елемента керування.
- У діалоговому вікні виберіть опцію «Вибрати джерело даних».
Крок 3) Після цього вам буде представлено діалогове вікно. Його можна використовувати для створення нового джерела даних. Джерело даних представлятиме підключення до бази даних. Виберіть опцію «Нове джерело даних».
Крок 4) Після вибору нового джерела даних на останньому кроці з’явиться наведений нижче екран. Тут нам потрібно згадати тип джерела даних, яке ми хочемо створити.
- Виберіть параметр бази даних для роботи з базою даних SQL Server.
- Тепер нам потрібно дати назву нашому джерелу даних. Тут ми даємо йому назву DemoDataSource.
- Нарешті, натискаємо кнопку OK, щоб перейти до наступного екрана.
Крок 5) Тепер нам потрібно створити підключення до нашої бази даних. На наступному екрані натисніть кнопку «Нове підключення».
Крок 6) Далі потрібно додати облікові дані для підключення до бази даних.
- Виберіть ім'я сервера, на якому знаходиться SQL Server.
- Введіть ідентифікатор користувача та пароль для підключення до бази даних.
- Виберіть базу даних як demotb.
- Натисніть кнопку ОК.
Крок 7) На наступному екрані ви зможете побачити таблицю demotb. Просто натисніть кнопку «Далі», щоб прийняти налаштування за замовчуванням.
Крок 8) Тепер ви зможете перевірити з’єднання на наступному екрані.
- Натисніть кнопку «Тестовий запит», щоб перевірити, чи можна отримати значення з таблиці.
- Натисніть кнопку Готово, щоб завершити роботу майстра.
Крок 9) Тепер на останньому екрані ви можете натиснути кнопку OK. Це призведе до прив’язки списку TutorialID.Box до назви поля TutorialID у таблиці demotb.
Крок 10) Тепер час прив’язати список TutorialNameBox у поле «Назва посібника».
- Спочатку натисніть на список TutorialNameBox.
- Далі виберіть Джерело даних у діалоговому вікні, яке з’явиться збоку від спискуBox.
Крок 11) Ви вже побачите DemoDataSource під час вибору джерела даних на наступному екрані.
- Виберіть Джерело демонстраційних даних.
- Натисніть кнопку ОК.
Якщо всі описані вище кроки виконано, як показано, ви отримаєте наведені нижче результати.
Вихід:-
З виводу видно, що СписокBoxвідображають відповідно TutorialID та TutorialName.




























