Вступление
В этой статье я собираюсь показать вам, как создать проект библиотеки классов .NET Core 2.1 с использованием ADO.NET.
Этот проект библиотеки классов содержит функции бизнес-логики для вставки данных в базу данных. Затем я использую этот проект библиотеки классов в приложении ASP.NET Core 2.1 MVC .
Мы будем использовать Visual Studio 2017 (версия 15.9.13 или выше) и SQL Server 2017. Вы также можете использовать SQL Server 2008 или выше.
Что такое библиотека классов?
Библиотека классов содержит типы, классы, интерфейсы и методы, которые легко использовать повторно, разделяемые, распределенные или потребляемое приложение. Кроме того, проект библиотеки классов используется для повторного использования кода.
Предпосылки
- Установите Visual studio 2017 Обновленная версия 15.9.13.
- Установите .Net Core SDK 2.1 или выше.
- SQL Server 2017.
Теперь мы создадим наш проект библиотеки классов .Net Core 2.1.
Прежде всего, мы создадим базу данных и хранимые процедуры.
Вам также может понравиться:
Все вещи ASP.NET Core и MVC: учебные пособия и статьи .
Создание базы данных и хранимых процедур
Шаг 1 — Создать базу данных
Откройте SQL — сервер и использовать следующий скрипт для создания в « CoreMvcDB» баз данных
Create database CoreMvcDB
Шаг 2 — Создать таблицу
Откройте SQL Server и используйте следующий скрипт для создания таблицы « tbl_Employee».
SQL
1
create table tbl_Employee
2
(
3
Sr_no int not null primary key identity(1,1),
4
Emp_Name nvarchar(250),
5
City nvarchar(100),
6
State nvarchar(100),
7
Country nvarchar(100),
8
Department nvarchar(50)
9
)
Шаг 3 — Создайте хранимую процедуру
Теперь мы создадим хранимую процедуру для добавления данных о сотрудниках в базу данных. Откройте SQL Server и используйте следующий скрипт для создания процедуры.
Чтобы вставить запись сотрудника
SQL
xxxxxxxxxx
1
create procedure sp_Employee_Add
2
@Emp_Name nvarchar(250),
3
@City nvarchar(100),
4
@State nvarchar(100),
5
@Country nvarchar(100),
6
@Department nvarchar(50)
7
AS
8
BEGIN
9
Insert into tbl_Employee(Emp_Name,City,State,Country,Department)
10
values(@Emp_Name,@City,@State,@Country,@Department)
11
END
Теперь мы создадим проект библиотеки классов .NET Core 2.1.
Создание проекта библиотеки классов .NET Core 2.1
Шаг 1 — Создание библиотеки классов Пустое решение
Сначала создаем пустое решение для нашего проекта библиотеки классов, оно содержит наш проект библиотеки классов и связанные с ним проекты. Решение Visual Studio просто служит контейнером для одного или нескольких проектов.
- Откройте панель меню Visual Studio, выберите Файл -> Создать -> Проект .
- После выбора проекта откроется диалоговое окно «Новый проект». Разверните узел « Другие типы проектов » и выберите « Решения Visual Studio. Назовите решение «Читтаранджан» и нажмите кнопку « ОК» .
Шаг 2. Создание проекта библиотеки базовых классов .NET
- В обозревателе решений щелкните правой кнопкой мыши файл решения Chittaranjan и в контекстном меню выберите пункт меню « Добавить -> Новый проект» .
- В диалоговом окне « Добавить новый проект » разверните узел Visual C #; затем выберите узел .NET Core с левой стороны и выберите шаблон проекта библиотеки классов (.NET Core) .
Теперь вы можете дать вашему проекту имя и выбрать OK, чтобы создать проект библиотеки классов .NET Core. Здесь мой проект называется «ChittaDB».
Теперь наш проект библиотеки классов создан. Решение «Chittaranjan» содержит один проект, который называется «ChittaDB».
Шаг 3 — Добавить функциональность проекта библиотеки классов
В проекте библиотеки классов «ChittaDB» я добавил два файла классов для вставки данных и сохранения данных в базе данных. Сделать это:
- Добавьте класс в проект библиотеки классов.
- Щелкните правой кнопкой мыши по проекту «ChittaDB» и выберите пункт меню « A dd a New Item» . В диалоговом окне параметров меню выберите VisualC # Items с левой стороны и выберите Class с правой стороны. Затем вы можете добавить свое имя класса. Здесь имя нашего класса — EmployeeEntities.cs . Теперь нажмите кнопку Добавить . Этот класс будет содержать наши свойства Employee.
- Теперь откройте класс EmployeeEntities.cs и поместите в него следующий код. Мы также добавляем необходимые валидаторы в поля класса EmployeeEntities, поэтому нам нужно использовать System.ComponentModel.DataAnnotations вверху.
C #
xxxxxxxxxx
1
using System.ComponentModel.DataAnnotations;
2
namespace ChittaDB
3
{
4
public class EmployeeEntities
5
{
6
[Required]
7
public string Emp_Name { get; set; }
8
[Required]
9
public string City { get; set; }
10
[Required]
11
public string State { get; set; }
12
[Required]
13
public string Country { get; set; }
14
[Required]
15
public string Department { get; set; }
16
}
17
}
- Добавьте еще один класс в проект библиотеки классов для методов вставки.
- Щелкните правой кнопкой мыши по проекту «ChittaDB» и выберите пункт «Добавить новый пункт меню». В диалоговом окне параметров меню выберите VisualC # Items с левой стороны и выберите Class с правой стороны. Затем вы можете поставить название своего класса. Здесь Имя нашего класса — EmployeeDBAccessLayer, нажмите кнопку Добавить. Этот класс будет содержать операции, связанные с нашей базой данных.
Теперь структура проекта библиотеки классов приведена ниже.
Откройте EmployeeDBAccessLayer.cs и поместите следующий код для обработки операций базы данных. Обязательно укажите строку подключения.
Примечание.
Для Ado.Net я добавляю «Microsoft.EntityFrameworkCore.SqlServer» в свой проект библиотеки классов. Это доступно в пакетах управления NuGet.
-
C #
xxxxxxxxxx
135
1
using System.Data;
2
using System.Data.SqlClient;
3
namespace ChittaDB
4
{
5
public class EmployeeDBAccessLayer
6
{
7
SqlConnection con = new SqlConnection("put your connection string here");
8
public string AddEmployeeRecord(EmployeeEntities employeeEntities)
9
{
10
try
11
{
12
SqlCommand cmd = new SqlCommand("sp_Employee_Add", con);
13
cmd.CommandType = CommandType.StoredProcedure;
14
cmd.Parameters.AddWithValue("@Emp_Name",
15
employeeEntities.Emp_Name);
16
cmd.Parameters.AddWithValue("@City", employeeEntities.City);
17
cmd.Parameters.AddWithValue("@State", employeeEntities.State);
18
cmd.Parameters.AddWithValue("@Country",
19
employeeEntities.Country);
20
cmd.Parameters.AddWithValue("@Department",
21
employeeEntities.Department);
22
23con.Open();
24
cmd.ExecuteNonQuery();
25
con.Close();
26
27return ("Data save Successfully");
28
}
29
catch (Exception ex)
30
{
31
if (con.State == ConnectionState.Open)
32
{
33
con.Close();
34
}
35
36return (ex.Message.ToString());
37
}
38
}
39
}
40
}
Шаг 5 - Сборка
Создайте свой проект, нажав F5 или выбрав пункт меню Build в Visual Studio.
Шаг 6 - Использование проекта библиотеки классов
Здесь я использую проект библиотеки классов в приложении ASP.NET Core 2.1 MVC. Сначала мы создадим приложение ASP.NET Core 2.1 MVC.
Откройте Visual Studio и выберите Файл -> Создать -> Проект .
После выбора проекта откроется диалоговое окно « Новый проект ». Выберите .NET Core в меню Visual C # на левой боковой панели.
Затем выберите веб-приложение ASP.NET Core из доступных шаблонов проектов. Дайте название проекту « ChittaWeb » и нажмите ОК .
После нажатия на кнопку ОК откроется новое диалоговое окно для выбора шаблона проекта. Вы можете увидеть два раскрывающихся меню в левом верхнем углу окна шаблона. Затем выберите .NET Core и ASP.NET Core 2.1 из этих выпадающих списков. Выберите шаблон веб-приложения (Model-View-Controller) и нажмите OK, чтобы создать проект ASP.NET Core MVC. Затем выберите галочку для настройки HTTPS.
В Solution «Chittaranjan» содержит два проекта; Первый проект - «ЧиттаБ». Это проект библиотеки классов. Второе название проекта - «ChittaWeb». Это приложение ASP.NET Core 2.1 MVC. Теперь наше приложение ASP.NET Core MVC создано.
Теперь мы можем использовать функциональность библиотеки классов .NET Core 2.1 в приложении ASP.NET Core 2.1 MVC.
Шаг 1 - Добавить ссылку на проект библиотеки классов
Чтобы использовать проект библиотеки классов в своем приложении, сначала необходимо добавить ссылку на проект библиотеки классов, чтобы получить доступ к его функциям. Щелкните правой кнопкой мыши на зависимостях приложения ASP.NET Core MVC «ChittaWeb» в обозревателе решений и выберите опцию « Добавить -> Ссылка» .
На следующем экране вы увидите, что ChittaDB уже доступен. Выберите ChittaDB и затем нажмите кнопку ОК .
Шаг 2 - Импорт пространства имен и функций вызова
Сначала добавьте контроллер в основное приложение MVC Asp.Net, затем используйте пространство имен Import и вызовите функции.
Щелкните правой кнопкой мыши папку « Контроллеры » и выберите « Добавить новый элемент» .
New Item Добавить откроется диалоговое окно. Выберите ASP.NET Core на левой панели; затем выберите Controller Class на панели шаблонов и введите make EmployeeController.cs . Затем нажмите Добавить .
В Employeecontroller я импортирую пространство имен ChittaDB.
Импортировать пространство имен
Прежде чем вы сможете использовать проект библиотеки классов и его классы, вы должны импортировать пространство имен, используя следующий код.
using ChittaDB;
Если ваша ссылка на проект библиотеки классов добавлена правильно, как только вы начнете печатать «используя Chitt ..», вы увидите, что Visual Studio Intellisense загрузит пространство имен в списке.
Функции вызова
После добавления ссылки все классы, методы и открытые члены проекта библиотеки классов должны быть доступны в приложении ASP.NET Core MVC. Теперь мы можем вызвать все методы в контроллере .
Здесь я назову все классы и функции из проекта библиотеки классов. Мы поместим нашу бизнес-логику в этот контроллер.
Для обработки операций с базой данных мы создадим объект класса EmployeeDBAccessLayer внутри класса EmployeeController .
C #
x
1
using Microsoft.AspNetCore.Mvc;
2
using ChittaDB;
3
namespace ChittaWeb.Controllers
4
{
5
public class EmployeeController : Controller
6
{
7
EmployeeDBAccessLayer empdb = new EmployeeDBAccessLayer();
Чтобы обработать бизнес-логику create
операции, откройте EmployeeController .cs и добавьте в него следующий код:
C #
xxxxxxxxxx
1
using Microsoft.AspNetCore.Mvc;
2
using ChittaDB;
3
namespace ChittaWeb.Controllers
4
{
5
public class EmployeeController : Controller
6
{
7
EmployeeDBAccessLayer empdb = new EmployeeDBAccessLayer();
8
9
[HttpGet]
10
public IActionResult Create()
11
{
12
return View();
13
}
14
[HttpPost]
16
public IActionResult Create([Bind] EmployeeEntities employeeEntities)
17
{
18
try
19
{
20
if (ModelState.IsValid)
21
{
22
string resp = empdb.AddEmployeeRecord(employeeEntities);
23
TempData["msg"] = resp;
24
}
25
}
26
catch (Exception ex)
27
{
28
TempData["msg"] = ex.Message;
29
}
30
31
return View();
32
}
33
}
34
}
Добавление вида в приложение
Чтобы добавить представления для нашего класса контроллера, нам нужно создать папку внутри папки Views с тем же именем, что и у нашего контроллера, а затем добавить наши представления в эту папку.
Щелкните правой кнопкой мыши папку Views , затем выберите Add >> New Folder и назовите папку Employee .
Теперь щелкните правой кнопкой мыши на папке Views / Employee и выберите Add >> New Item .
New Item Добавить откроется диалоговое окно. Выберите ASP.NET Core на левой панели, выберите Razor View на панели шаблонов и введите имя Create.cshtml . Затем нажмите ОК .
Создать вид
Это представление будет использоваться для добавления новых данных о сотрудниках в базу данных.
Откройте Create.cshtml и вставьте в него следующий код.
HTML
xxxxxxxxxx
1
@model ChittaDB.EmployeeEntities
2
@{
3
ViewData["Title"] = "Create Employee";
4
}
5
<h2>Create Employee</h2>
6
<hr />
7
<form asp-action="Create" class="form-horizontal">
8
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
9
<div class="form-group">
10
<label class="control-label">Name</label>
11
<input asp-for="Emp_Name" class="form-control" />
12
<span asp-validation-for="Emp_Name" class="text-danger"></span>
13
</div>
14
<div class="form-group">
15
<label class="control-label">City</label>
16
<input asp-for="City" class="form-control" />
17
<span asp-validation-for="City" class="text-danger"></span>
18
</div>
19
<div class="form-group">
20
<label class="control-label">State</label>
21
<input asp-for="State" class="form-control" />
22
<span asp-validation-for="State" class="text-danger"></span>
23
</div>
24
<div class="form-group">
25
<label class="control-label">Country</label>
26
<input asp-for="Country" class="form-control" />
27
<span asp-validation-for="Country" class="text-danger"></span>
28
</div>
29
<div class="form-group">
30
<label class="control-label">Department</label>
31
<input asp-for="Department" class="form-control" />
32
<span asp-validation-for="Department" class="text-danger"></span>
33
</div>
34
<div class="form-group">
35
<input type="submit" value="Submit" class="btn bg-primary" />
36
</div>
37
</form>
38
@{
39
if (@TempData["Msg"] != null)
40
{
41
<script>
42
alert('@TempData["msg"]')
43
</script>
44
}
45
}
46
Добавить новый предмет
Отредактируйте страницу Views / Shared / _Layout и добавьте новое меню Add Employee . Для этого добавьте следующий код:
xxxxxxxxxx
1
<ul class="nav navbar-nav">
2
<li><a asp-area="" asp-controller="Home" asp-action="Index">Home</a></li>
3
<li><a asp-area="" asp-controller="Home" asp-action="About">About</a></li>
4
<li><a asp-area="" asp-controller="Home" asp-action="Contact">Contact</a></li>
5
<li><a asp-area="" asp-controller="Employee" asp-action="Create">Add Employee</a></li>
6
</ul>
Построить и запустить
Теперь нажмите F5, чтобы запустить приложение или запустить приложение. Нажмите « Добавить сотрудника», чтобы перейти к представлению « Создать» .
Мы также добавили проверку с использованием DataAnnotations
на странице «Создать представление». Если мы пропустим данные в каком-либо поле при создании записи сотрудника, мы получим сообщение об ошибке проверки требуемого поля.
Когда данные будут сохранены, появится сообщение об успехе. Оттуда, нажмите ОК. После того, как данные сохранены, вы можете проверить свою базу данных.
Вывод
В этой статье вы узнали, как создать проект библиотеки классов .NET Core 2.1 с помощью ADO.NET с помощью Visual Studio 2017. Вы также узнали, как использовать библиотеку классов .NET Core в ASP.NET Core MVC. приложение для вставки данных.