ADO.NET - ADO.NET MVC

Ví dụ ADO.NET MVC

MVC (Model View Controller) là một mẫu ứng dụng web được sử dụng trong phát triển ứng dụng web. Trong ví dụ này, Chúng ta tạo một ứng dụng MVC kết nối với CSDL SQL Server.

Ứng dụng này chứa một Model, một View và một Controller.

Model

// Student.cs

using System;  
using System.ComponentModel.DataAnnotations;  
namespace Ado.NetMvcApplication.Models  
{  
    public class Student  
    {  
        public int ID { get; set; }  
        // -- Validating Student Name  
        [Required(ErrorMessage = "Name is required")]  
        [MaxLength(12)]  
        public string Name { get; set; }  
        // -- Validating Email Address  
        [Required(ErrorMessage = "Email is required")]  
        [EmailAddress(ErrorMessage = "Invalid Email Address")]  
        public string Email { get; set; }  
        // -- Validating Contact Number  
        [Required(ErrorMessage = "Contact is required")]  
        [DataType(DataType.PhoneNumber)]  
        [RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Not a valid Phone number")]  
        public string Contact { get; set; }  
    }  
}  

View

// Index.cshtml

@model Ado.NetMvcApplication.Models.Student  
@{  
    ViewBag.Title = "Index";  
}  
<h2>Index</h2>  
@using (Html.BeginForm("Save", "Students"))  
{  
    @Html.AntiForgeryToken()  
      
    <div class="form-horizontal">  
        <h4>Student</h4>  
        <hr />  
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })  
        <div class="form-group">  
            @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })  
            <div class="col-md-10">  
                @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })  
                @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })  
            </div>  
        </div>  
        <div class="form-group">  
            @Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })  
            <div class="col-md-10">  
                @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })  
                @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })  
            </div>  
        </div>  
        <div class="form-group">  
            @Html.LabelFor(model => model.Contact, htmlAttributes: new { @class = "control-label col-md-2" })  
            <div class="col-md-10">  
                @Html.EditorFor(model => model.Contact, new { htmlAttributes = new { @class = "form-control" } })  
                @Html.ValidationMessageFor(model => model.Contact, "", new { @class = "text-danger" })  
            </div>  
        </div>  
        <div class="form-group">  
            <div class="col-md-offset-2 col-md-10">  
                <input type="submit" value="Create" class="btn btn-default" />  
            </div>  
        </div>  
    </div>  
}  
@section Scripts {  
    @Scripts.Render("~/bundles/jqueryval")  
}  

Controller

// StudentsController.cs

using System.Web.Mvc;  
using Ado.NetMvcApplication.Models;  
using System.Data.SqlClient;  
namespace Ado.NetMvcApplication.Controllers  
{  
    public class StudentsController : Controller  
    {  
        // GET: Students  
        public ActionResult Index()  
        {  
            return View();  
        }  
        [HttpPost]  
        public ContentResult Save(Student student)  
        {  
            string status = "";  
            // Creating Connection  
            using (SqlConnection con = new SqlConnection("data source=.; database=student; integrated security=SSPI"))  
            {  
                // Insert query  
                string query = "INSERT INTO student(name,email,contact) VALUES(@name, @email, @contact)";  
                using (SqlCommand cmd = new SqlCommand(query))  
                {  
                    cmd.Connection = con;  
                    // opening connection  
                    con.Open();  
                    // Passing parameter values  
                    cmd.Parameters.AddWithValue("@name", student.Name);  
                    cmd.Parameters.AddWithValue("@email", student.Email);  
                    cmd.Parameters.AddWithValue("@contact", student.Contact);  
                    // Executing insert query  
                    status = (cmd.ExecuteNonQuery() >= 1) ?  "Record is saved Successfully!" : "Record is not saved";  
                    status += "<br/>";  
                }  
                    // Executing select command  
                using (SqlCommand cmd = new SqlCommand("select * from student"))  
                {  
                    cmd.Connection = con;  
                    // Retrieving Record from datasource  
                    SqlDataReader sdr = cmd.ExecuteReader();  
                    // Reading and Iterating Records  
                    while (sdr.Read())  
                    {  
                        status += "<b>name:</b> "+sdr["name"]+"<br/> <b>Email:</b> "+sdr["email"]+"<br> <b>Contact:</b> "+sdr["contact"];  
                    }  
                }  
                return Content(status);  
            }  
        }  
    }  
}  

Kết quả:

ADO Net Mvc Example 1

Sau khi gửi đi, dữ liệu được lưu vào CSDL SQL Server và trả kết quả về cho trình duyệt.

ADO Net Mvc Example 2