Lập trình Cơ sở dữ liệu là 1 phần rất đặc biệt quan trọng trong thiết kế ứng dụng, nó là trung gian kết nối giữa người sử dụng với cơ sở dữ liệu.Với công nghệ ADO.NET họ có một chuẩn thống nhất để lập trình thao tác với các nguồn cửa hàng dữ liệu khác nhau như Access, My
SQL, SQL Server, Oracle… cũng tương tự lập trình áp dụng với dạng Win
Form với Web
Form.Trong bài xích này chúng ta sẽ đi vào một bài tập ví dụ để tò mò các đối tượng quan trọng trong ADO.NET để lập trình với csdl như: Connection, Command, Data
Reader, Data
Adapter, Data
Set để liên kết đến hệ quản trị csdl SQL Server.

Bạn đang xem: Cách dùng dataset trong c#


Nội dung

Tổng quan liêu Các đối tượng người tiêu dùng trong ADO.NETThực hiện tại câu lệnh Select, hiển thị tài liệu lên Data
Grid
Thực hiện những câu lệnh Insert, Update, Delete dữ liệu
Sử dụng những Stored Procedure
Lưu thông tin cấu hình trong file config

Nội dung

Yêu cầu bài xích toán

Lập trình thống trị cơ sở dữ liệu QLBan
Hang
 có các bảng:

tbl
Mat
Hang
( Ma
SP
 nchar(5), Ten
SP nvarchar(30), Ngay
SX Date, Ngay
HH Date, Don
Vi nvarchar(10), Don
Gia float , Ghi
Chu nvarchar(200))

tbl
Nha
CC
(Ma
Nha
CC
nchar(5), Ten
Nha
CC nvarchar(50), Dia
Chi nvarchar(200), Ma
So
Thue nvarchar(15), Tai
Khoan nvarchar(15), Dien
Thoai nvarchar(11)
)

tbl
Hang
Nhap
(Ma
SP
nchar(5), Ma
Nha
CC
nchar(5), So
Luong int, Don
Gia float, So
HD nvarchar(10), Ngay
GH Date
)

Hãy xây dựng bối cảnh và các chức năng Thêm mới, Sửa, Xoá, Tìm kiếm của các bảng trên tương tự như sau.>Xem phía dẫn tạo thành Database trong Visual
Studio


Tổng quan tiền Các đối tượng người tiêu dùng trong ADO.NET

1. Các .Net Data Provider trong ADO.Net

Sử dụng Name
Space System.Data để lập trình với ADO.NETCác .Net Data Provider được thực hiện để kết nối tới cửa hàng dữ liệu, thực thi những câu lệnh truy nã vấn (SQL) với lấy dữ liệu. Tài liệu trả về rất có thể được xử lý trực tiếp, đặt trong đối tượng người sử dụng Data
Set
, được kết phù hợp với dữ liệu từ nhiều nguồn hoặc gửi dữ liệu giữa những tầng (tiers) trong mô hình lập trình các tầng (N-Tier).Trong .Net Framework có các .Net Data Provider mang định sau:

.NET Data Provider mang lại SQL Server: sử dụng namespace System.Data.Sql
Client.NET Data Provider đến OLE DB: thực hiện namespace System.Data.Ole
Db.NET Data Provider cho ODBC: thực hiện namespace System.Data.Odbc.NET Data Provider đến Oracle: sử dụng namespace System.Data.Oracle
Client
Entity
Client Provider: cung cấp truy cập dữ liệu cho những ứng dụng dạng Entity Data mã sản phẩm (EDM), sử dụng namespace System.Data.Entity
Client.NET Data Provider mang lại SQL server Compact 4.0: cung ứng truy cập dữ liệu cho Microsoft SQL vps Compact 4.0, thực hiện namespace System.Data.Sql
Server
Ce2. Các đối tượng trong .Net Data Provider
Connection: tùy chỉnh thiết lập kết nối tới mối cung cấp dữ liệu
Command: thực thi những câu lệnh truy vấn vấn với mối cung cấp dữ liệu từ 1 Connection
Data
Reader: cung cấp một luồng (stream) tài liệu chỉ hiểu từ nguồn dữ liệu
Data
Adapter: đặt tài liệu vào Data
Set
và update dữ liệu từ bỏ Data
Set
về nguồn dữ liệu3. Những phương thức với thuộc tính quan liêu trọnga. Connection
Thuộc tính Connection
String: truyền vào chuỗi liên kết tới nguồn dữ liệu
Phương thức Open: mở kết nối
Phương thức Close: đóng kết nốib. Command
Thuộc tính Command
Text: truyền vào câu lệnh SQL hoặc thương hiệu Stored procedure
Thuộc tính Command
Type: phong cách câu lệnh SQL là Stored
Procedure,Table
Direct tuyệt Text
Thuộc tính Connection: truyền vào đối tượng người sử dụng Connection
Phương thức Execute
Reader: tiến hành với câu lệnh SQL Select và trả về luồng tài liệu qua đối tượng người tiêu dùng Data
Reader
Phương thức Execute
Scalar: thực hiện câu lệnh SQL Select và trả về một quý giá ở số 1 tiên với cột đầu tiên. Thích hợp với câu lệnh Select dạng thống kê như Count, Sum, AVG …Phương thức Execute
Non
Query: thực hiện câu lệnh SQL như Insert, Update, Delete … với không trả về kết quả
Phương thức Execute
XMLReader: thực hiện câu lệnh tróc nã vấn với các câu lệnh mang lại XMLc. Data
Reader
Phương thức Read: đọc các hàng dữ liệud. Data
Adapter
Phương thức Fill: đổ dữ liệu từ nguồn dữ liệu vào Data
Set
Phương thức Update: cập nhật dữ liệu tự Data
Set tới mối cung cấp dữ liệu
*
*
*
*
*
*
*
*
*
*
*
Phan Tiến viết:

Em tải bạn dạng SQL server 2018 rồi tải vào máy em nhé.Xem một số phiên bản SQL hệ thống 2018:https://timoday.edu.vn/huong-dan-cai-dat-va-su-dung-sql-server-2008-va-northwind-database/

GUI Layer: Lớp này là lớp hiển thị bối cảnh và các tác dụng để người dùng cuối sử dụng.Business (BUS) Layer: Đây là lớp nhận các yêu cầu từ lớp GUI và truy xuất lên lớp Data để mang thông tin và trả về GUI.Data Access Layer: Lớp này là lớp để truy xuất với CSDL, chỉ độc nhất vô nhị lớp này được gia công việc cùng với database.(Ko nên thiết) DTO Layer: Lớp này chỉ cần phụ thôi, đấy là lớp định nghĩa các table trong database của bạn, có mang cột của nó cũng như để ta gán data khi query rước dữ liệu. Các bạn có thể hiểu nôm na là một trong dạng cơ bản ORM (Object Relation Mapping).Đây là cách hoạt động vui chơi của mô hình 3 lớp:

*

Nhìn sơ qua thì nó hơi là như thể MVC bên web nhỉ? Business như là Controller

*
, GUI là View cùng Data Access là Model.

Xem thêm: Cách Dùng Historic Và Historical (Đầy Đủ Chi Tiết Có Bài Tập)

2. Lợi thế của mô hình 3 lớp
Việc phân phân thành từng lớp hỗ trợ cho code được tường minh hơn. Phụ thuộc vào việc chia ra từng lớp đảm nhiệm các công dụng khác nhau và hiếm hoi như giao diện, xử lý, tầm nã vấn thay vị để tất cả lại một chỗ. Nhằm mục tiêu giảm sự kết dính.Dễ duy trì khi được phân chia, thì một nhân tố của hệ thống sẽ dễ rứa đổi. Việc biến đổi này hoàn toàn có thể được cô lập trong một lớp, hoặc ảnh hưởng đến lớp sớm nhất mà không ảnh hưởng đến cả chương trình.Dễ phân phát triển, tái sử dụng: khi họ muốn thêm một tác dụng nào kia thì việc lập trình theo một quy mô sẽ dễ dãi hơn vì họ đã có chuẩn chỉnh để tuân theo. Và việc sử dụng lại khi bao gồm sự đổi khác giữa hai môi trường thiên nhiên ( Winform sang Webfrom ) thì chỉ việc biến hóa lại lớp GUI.Dễ bàn giao. Ví như mọi tín đồ đều theo một quy chuẩn đã được định sẵn, thì các bước bàn giao, tương tác với nhau sẽ dễ dàng hơn với tiết kiệm được rất nhiều thời gian.Dễ phân phối trọng lượng công việc. Mỗi một nhóm, một phần tử sẽ nhấn một nhiệm vụ trong quy mô 3 lớp. Câu hỏi phân chia ví dụ như thế sẽ giúp các xây dựng viên điều hành và kiểm soát được khối lượng quá trình của mình.3. Chi tiết về 3 lớp

3.1 Presentation Layer (GUI)

*
Có hai thành phần chính sau đây với gần như tác vụ rõ ràng :

UI Components : gồm các thành phần tạo cho giao diện của vận dụng (GUI). Chúng chịu trách nhiệm thu nhận với hiển thị dữ liệu cho người dùng… lấy ví dụ : textbox, button, combobox, …

UI Process Components : là thành phần chịu trách nhiệm làm chủ các vượt trình chuyển đổi giữa những UI… ví dụ như : chuẩn bị xếp quá trình kiểm tra thông tin khách hàng:

Hiển thị màn hình hiển thị tra cứu vớt ID

Hiển thị màn hình hiển thị thông tin chi tiết khách mặt hàng tương ứng

Hiển thị màn hình liên lạc với khách hàng hàng.

3.2 Bussiness Layer (BLL)

*
Lớp này gồm 4 thành phần:

Service Interface : là thành phần giao diện lập trình mà lớp này cung ứng cho lớp Presentation sử dụng.Bussiness Workflows : chịu đựng trách nhiệm xác minh và điều phối những quy trình nghiệp vụ gồm nhiều cách và kéo dài. Những các bước này yêu cầu được sắp xếp và triển khai theo một đồ vật tự bao gồm xác.Ví dụ : thực hiện mua một deals trên tiki qua không ít bước : soát sổ gói mặt hàng còn không?, tính tổng chi phí, được cho phép giao dịch và bố trí việc giao hàng.Bussiness Components : chịu trách nhiệm kiểm tra những quy tắc nghiệp vụ, ràng buộc logic và tiến hành các các bước . Các thành phần này cũng triển khai các dịch vụ mà Service Interface hỗ trợ và Business Workflows sẽ thực hiện nó.Ví dụ : thường xuyên ví dụ ngơi nghỉ trên. Các bạn sẽ cần một Bussiness Component để đánh giá gói hàng bao gồm khả dụng không ? hay là 1 component nhằm tính tổng bỏ ra phí,…Bussiness Entities: hay được thực hiện như Data Transfer Objects ( DTO ). Bạn cũng có thể sử dụng nhằm truyền tài liệu giữa các lớp (Presentation và Data Layer). Chúng thường là cấu tạo dữ liệu ( Data
Sets, XML,… ) hay các lớp đối tượng người tiêu dùng đã được tùy chỉnh.Ví dụ : tạo 1 class Student lưu trữ các dữ liệu về tên, ngày sinh, ID, lớp.

3.3 Data Layer (DAL)

*

Data Access logic Components : phụ trách chính lưu trữ và truy hỏi xuất dữ liệu từ những nguồn tài liệu (Data Sources) như XML, tệp tin system,… hơn thế nữa còn tạo thuận tiện cho việc dễ cấu hình và bảo trì.Service Agents : giúp đỡ bạn gọi và shop với những dịch vụ từ phía bên ngoài một cách thuận lợi và solo giản.4. Ví dụ

Để hiểu rõ hơn về kết cấu và biện pháp xây dựng của quy mô 3 lớp, chúng ta cùng xem thêm một lấy ví dụ như về mô hình quản lí công nhân

gồm các lớp BUS, DAO, GUI. (Các đoạn code có khả năng sẽ bị lược loại trừ )

*

Đầu tiên là GUI gồm các button insert, update, reset ,delete ,exit. Người dùng sẽ tiếp xúc với màn hình giao diện này

*

Lớp DTO, đây không phải là layer, đây chỉ là 1 trong gói dữ liệu đươc thảo luận giữa những lớp. Gói tài liệu này được xây dừng dưới dạng lớp đối tượng. Mỗi một công nhân sẽ mang số đông thuộc tính sau:

namespace DTO public class Employee
DTO #region Atrributes private String _employee
ID; private String _name; private String _email; private float _salary; private int _employee
Style; #endregion //..... Các nhiệm vụ xử lý chính sẽ tiến hành đặt nghỉ ngơi lớp BUS (hay là BLL) gồm các nghiệp vụ insert, update, delete, retrieve

namespace BUS public class Employee
BUS #region 1. Inserting public static bool Insert
Employee(Employee
DTO emp) if (Employee
DAO.Check
Employee
By
ID(emp.Employee
ID)==true &&Employee
Style
DAO.Check
Employee
Style
By
ID(emp.Employee
Style)==false) return false; return Employee
DAO.Insert
Employee(emp); #endregionhttps://techtalk.vn/wp-admin/post-new.php# //2. Updating //3. Deleting //4. Retrieving Và ở đầu cuối là lớp DAO ( hay là DAL ). Truy vấn đến các đại lý dữ liệu

namespace DAO{ public class Employee
DAO { #region 1. Inserting public static bool Insert
Employee(Employee
DTO emp) { bool result=false; try { // Create danh mục Sql Parameter danh sách sql
Params = new List(); sql
Params.Add(new Sql
Parameter("