Введение:

В моей предыдущей статье я объяснил Как получить и отобразить табличные данные из базы данных с помощью AngularJs в Asp.net MVC. Сегодня в этой статье я объясню, как вставлять данные в базу данных с помощью Angularjs в приложении Asp.net MVC. В этом примере я использовал Ado.Net для работы с базой данных и Angular2.

В этом примере мы вставим запись в базу данных MS SQL, используя AngularJs.

Хорошо, давайте начнем вставлять данные в базу данных, используя AngularJs в asp.net MVC.

Выполните следующие шаги, чтобы реализовать «Вставить данные в базу данных с помощью AngularJs в Asp.net MVC».

Шаг 1. Создайте новый проект.

Перейдите в меню «Файл» > «Создать» > «Проект» > «Веб» > «Веб-проект Asp.net MVC» > «Введите имя приложения» > «Выберите местоположение проекта» > нажмите кнопку «Добавить» > Появится новое диалоговое окно для выбора шаблона > здесь мы выберем пустой проект > затем нажмите взял

Шаг 2. Создайте таблицу и хранимую процедуру в базе данных.

В этом примере я использовал следующую таблицу для вставки записи в базу данных.

CREATE TABLE [dbo].[tbl_registration] ( [Sr_no] INT IDENTITY (1, 1) NOT NULL, [Email] NVARCHAR (100) NULL, [Password] NVARCHAR (MAX) NULL, [Name] VARCHAR (MAX) NULL, [Address] NVARCHAR (MAX) NULL, [City] NVARCHAR (MAX) NULL, CONSTRAINT [PK_tbl_registration] PRIMARY KEY CLUSTERED ([Sr_no] ASC) );

Теперь создайте хранимую процедуру для вставки всей записи в таблицу базы данных.

Create proc Sp_register @Email NVARCHAR (100) , @Password NVARCHAR (MAX) , @Name VARCHAR (MAX) , @Address NVARCHAR (MAX) , @City NVARCHAR (MAX) as begin insert into tbl_registration values(@Email,@Password,@Name , @Address,@City ) end

Запустите приведенный выше скрипт в MS SQL Server и нажмите кнопку «Выполнить».

Шаг 3. Добавьте строку подключения в файл web.config

Здесь я добавил строку подключения в файл «web.config» в разделе «Конфигурация» следующим образом.

<connectionStrings> <add name="con" connectionString="Data Source=.;Initial Catalog=test;Integrated Security=True" providerName="System.Data.SqlClient"/> </connectionStrings>

Шаг 4. Создайте контроллер.

Перейдите в обозреватель решений › щелкните правой кнопкой мыши папку контроллера › Добавить контроллер › Введите имя контроллера › Выберите шаблон «пустой контроллер MVC» › Добавить.

Здесь я создал контроллер «HomeController».

Теперь мы добавим представление для действия Index, где мы будем вставлять запись в таблицу базы данных.

Шаг 5. Добавьте класс модели для таблицы

Перейдите в папку с моделью ›› Щелкните правой кнопкой мыши на модели ›› Добавить новый класс

Здесь я добавил класс «registration.cs». Он содержит следующий код

public class registration { public int Sr_no { get; set; } public string Email { get; set; } public string Password { get; set; } public string Name { get; set; } public string Address { get; set; } public string City { get; set; } }

Шаг 6. Создайте уровень доступа к базе данных.

Здесь, в этом примере, я использовал Ado.net в качестве операции с базой данных, поэтому нам нужно создать класс для всех операций с базой данных. Здесь я создал класс «db.cs».

Перейдите в обозреватель решений › щелкните правой кнопкой мыши решение проекта › Добавить новую папку › Введите имя папки (здесь я переименовываю ее в «database_access_layer») › щелкните правой кнопкой мыши папку › Добавить новый класс.

Теперь добавьте следующий метод в класс доступа к базе данных, который вставляет все записи в таблицу базы данных.

public class db { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString); public void Add_register(registration rs) { SqlCommand com = new SqlCommand("Sp_register", con); com.CommandType = CommandType.StoredProcedure; com.Parameters.AddWithValue("@Email",rs.Email); com.Parameters.AddWithValue("@Password",rs.Password); com.Parameters.AddWithValue("@Name",rs.Name); com.Parameters.AddWithValue("@Address",rs.Address); com.Parameters.AddWithValue("@City",rs.City); con.Open(); com.ExecuteNonQuery(); con.Close(); } }

Весь класс db.cs будет паровым

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.SqlClient; using System.Configuration; using AngularInsert.Models; namespace AngularInsert.Database_Access_Layer { public class db { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString); public void Add_register(registration rs) { SqlCommand com = new SqlCommand("Sp_register", con); com.CommandType = CommandType.StoredProcedure; com.Parameters.AddWithValue("@Email",rs.Email); com.Parameters.AddWithValue("@Password",rs.Password); com.Parameters.AddWithValue("@Name",rs.Name); com.Parameters.AddWithValue("@Address",rs.Address); com.Parameters.AddWithValue("@City",rs.City); con.Open(); com.ExecuteNonQuery(); con.Close(); } } }

Шаг 7. Добавьте новый метод действия в контроллер для вставки данных в базу данных.

Здесь я создал метод действия «Регистрация» в HomeController, который выглядит следующим образом.

[HttpPost] public JsonResult Register(registration rs) { string res = string.Empty; try { dblayer.Add_register(rs); res = "Successfully Inserted...!"; } catch (Exception) { res = "Failed"; } return Json(res, JsonRequestBehavior.AllowGet); }

Весь HomeController выглядит следующим образом:

using AngularInsert.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace AngularInsert.Controllers { public class HomeController : Controller { // // GET: /Home/ Database_Access_Layer.db dblayer = new Database_Access_Layer.db(); public ActionResult Index() { return View(); } [HttpPost] public JsonResult Register(registration rs) { string res = string.Empty; try { dblayer.Add_register(rs); res = "Successfully Inserted...!"; } catch (Exception) { res = "Failed"; } return Json(res, JsonRequestBehavior.AllowGet); } } }

Шаг 8. Добавьте новый файл JS для контроллера AngularJS и файл библиотеки AngularJS

Перейдите в обозреватель решений › Щелкните правой кнопкой мыши папку (где вы хотите сохранить файлы JS контроллера AngularJS, здесь я создал папку с именем «AngularController» в папке сценариев) › Добавить › Выберите файл Javascript › Введите имя › Добавить.

Мы пишем следующий код в этот файл

var app = angular.module('homeapp', []); app.controller('HomeController', function ($scope, $http) { $scope.btntext = "Save"; $scope.savedata = function () { $scope.btntext = "Please wait...!"; $http({ method: 'POST', url: '/Home/Register', data: $scope.registration }).success(function () { $scope.btntext = "Save"; $scope.registration = null; alert('Data Submitted...!'); }).error(function () { alert('Failed'); }); } });

Здесь я создал угловой контроллер с именем «HomeController» с параметрами $http и $scope.

$http:$http — это служба AngularJS для чтения данных с удаленных серверов. Он делает запрос на сервер и возвращает ответ.

$Scope:$Scope — это связующая часть между HTML (представление) и JavaScript (контроллер). Это объект с доступными свойствами и методами. $Scope доступен как для представления, так и для контроллера.

Шаг 9. Добавьте в контроллер новое действие для вставки данных в базу данных.

Здесь я добавил «Индекс» в «HomeController». У меня есть следующий код.

public ActionResult Index() { return View(); }

Шаг 10. Добавьте представление для действий в контроллере и дизайне.

Щелкните правой кнопкой мыши метод действия индекса › Добавить представление › Введите имя представления › Выберите View Engine (Razor) › Добавить.

У него плохой код и дизайн

@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <link href="~/css/bootstrap.min.css" rel="stylesheet" /> </head> <body ng-app="homeapp"> <div ng-controller="HomeController"> <form> <div class="form-group"> <label class="col-sm-3 control-label no-padding-right">Email</label> <div class="col-sm-9"> <input type="text" name="title" ng-model="registration.Email" placeholder="Eg. Email" class="col-xs-10 col-sm-8" /> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label no-padding-right">Passowrd</label> <div class="col-sm-9"> <input type="password" name="title" ng-model="registration.Password" placeholder="Eg. Company Secretary" class="col-xs-10 col-sm-8" /> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label no-padding-right">Name</label> <div class="col-sm-9"> <input type="text" name="title" ng-model="registration.Name" placeholder="Eg. Company Secretary" class="col-xs-10 col-sm-8" /> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label no-padding-right">Address</label> <div class="col-sm-9"> <input type="text" name="title" ng-model="registration.Address" placeholder="Eg. Company Secretary" class="col-xs-10 col-sm-8" /> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label no-padding-right">City</label> <div class="col-sm-9"> <select class="col-xs-10 col-sm-8" ng-model="registration.City"> <option value="New Delhi">New Delhi</option> <option value="Noida">Noida</option> <option value="Ghaziabad">Ghaziabad</option> </select> </div> </div> <div class="form-group"> <div class="col-sm-9"> <input type="button" value="{{btntext}}" ng-click="savedata()" class="btn btn-primary" /> </div> </div> </form> </div> <script src="~/Scripts/angular.min.js"></script> <script src="~/Scripts/AngularController/HomeAngular.js"></script> </body> </html>

Шаг 11. Запустите приложение.

Мы сделали все шаги, теперь пришло время запустить приложение

Первоначально опубликовано на tutorialslink.com.