[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
Щоб вивести дані з бази даних в ASP.NET, ви можете використовувати такі кроки:
- Встановіть з’єднання з базою даних за допомогою рядка підключення до бази даних. Ви можете визначити рядок підключення у файлі appsettings.json або безпосередньо в коді.
- Створіть SQL-запит для отримання потрібних вам даних із бази даних. Для створення та виконання запиту можна використовувати об’єкт SqlCommand.
- Отримайте дані з бази даних за допомогою об’єкта SqlDataReader.
- Поверніть дані з дії як модель.
- Відобразіть дані в поданні через модель.
Приступимо. Спочатку додамо в проєкт бібліотеку для роботи з Sql базою даних:
1 |
Microsoft.Data.SqlClient |
Або через Package Manager Console:
1 |
Install-Package Microsoft.Data.SqlClient |
У моєму випадку, таблиця Users, до якої я звертатимуся, визначена таким чином:
1 2 3 4 5 6 |
CREATE TABLE [dbo].[Users] ( [Id] INT IDENTITY (1, 1) NOT NULL, [Name] NVARCHAR (10) NOT NULL, [Age] INT NOT NULL, PRIMARY KEY CLUSTERED ([Id] ASC) ); |
Ось приклад фрагмента коду, який демонструє отримання даних. Вміст контролера HomeController:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using Microsoft.AspNetCore.Mvc; using Microsoft.Data.SqlClient; namespace WebApplication2.Controllers { public record User(int Id, string Name, int Age); public class HomeController : Controller { public async Task<IActionResult> Index() { List<User> users = new List<User>(); // Define the database connection string string connectionString = "Data Source=(localdb)\MSSQLLocalDB; Initial Catalog=testdb; Trusted_Connection=True"; // Create a SQL query to retrieve data string sqlQuery = "SELECT Id,Name,Age FROM Users"; // Create a database connection and command objects using (SqlConnection connection = new SqlConnection(connectionString)) using (SqlCommand command = new SqlCommand(sqlQuery, connection)) { // Open the database connection await connection.OpenAsync(); using (SqlDataReader reader = await command.ExecuteReaderAsync()) { if (reader.HasRows) { // Read data line by line while (await reader.ReadAsync()) { users.Add(new User(reader.GetInt32(0), reader.GetString(1), reader.GetInt32(2))); } } } } return View(users); } } } |
Для простоти прикладу, рядок визначається прямо в контролері, в реальних проєктах так робити не варто.
Вміст подання Index.cshtml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
@using WebApplication2.Controllers; @{ ViewData["Title"] = "Example Page"; } @model IEnumerable<User> <div class="text-center"> <h1 class="display-4">All Users</h1> <div class="mt-3"></div> <table class="table"> <thead> <tr> <th>Id</th> <th>Name</th> <th>Age</th> </tr> </thead> <tbody> @foreach (User user in Model) { <tr> <td>@user.Id</td> <td>@user.Name</td> <td>@user.Age</td> </tr> } </tbody> </table> </div> |
У підсумку, на сторінці Index.cshtml, ми отримаємо таблицю користувачів:
Як альтернативу, можна використовувати технологію – Entity Framework Core.
Ви програміст-початківець, який хоче вивчити всі тонкощі мови C#?
Пройдіть наш тест на 13 запитань, щоб дізнатися, як багато ви знаєте насправді!
C# Braincheck |
Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є якісь коментарі або виправлення.
Так само вам може бути цікава попередня стаття – Як створити веб-сервіс.
Ви хочете навчитися писати код мовою програмування C#?
Створювати різні інформаційні системи, що складаються з сайтів, мобільних клієнтів, десктопних додатків, телеграм-ботів тощо.
Переходьте до нас на сторінку Dijix і ознайомтеся з умовами навчання, ми спеціалізуємося тільки на індивідуальних заняттях, як для початківців, так і для просунутих програмістів. Ви можете взяти як одне заняття для опрацювання питання, що вас цікавить, так і кілька, для більш щільної роботи. Завдяки особистому кабінету, кожен студент підвищить якість свого навчання, у вашому розпорядженні:
- Доступ до пройденого матеріалу
- Тематичні статті
- Бібліотека книг
- Онлайн тестування
- Спілкування в закритих групах