Tải bản đầy đủ (.pptx) (50 trang)

Chủ đề 4: lưu trữ, xử lý và trình bày dữ liệu C

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (679.42 KB, 50 trang )

TRƯỜNG ĐẠI HỌC NHA TRANG

LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI C#
CHỦ ĐỀ 4

LƯU TRỮ, XỬ LÝ VÀ TRÌNH BÀY DỮ LIỆU

1


NỘI DUNG:

 Các hệ quản trị cơ sở dữ liệu phổ biến
 ADO.NET
 DataSet
 Trình bày dữ liệu

2


NỘI DUNG:

 Các hệ quản trị cơ sở dữ liệu phổ biến
 ADO.NET
 DataSet
 Trình bày dữ liệu

3


Các hệ quản trị cơ sở dữ liệu phổ biến:


- SQL Server
- MySQL
- Oracle
- DB2
- …

4


NỘI DUNG:

 Các hệ quản trị cơ sở dữ liệu phổ biến
 ADO.NET
 DataSet
 Trình bày dữ liệu

5


ADO.NET:
- ActiveX Data Object .NET (ADO.NET)
 Công nghệ của MS
 Phát triển từ nền tảng ADO
 Cung cấp các lớp đối tượng và hàm thư viện phục vụ cho việc kết nối và
xử lý dữ liệu

ADO.NET
.NET Application

6



ADO.NET:
- Kiến trúc của ADO.NET gồm 2 phần chính:
- Phần kết nối: sử dụng khi kết nối CSDL và thao tác dữ liệu, phải thực
hiện kết nối khi thao tác





Connection: quản lý việc đóng mở DB
Command: lệnh truy vấn, tương tác dữ liệu khi đang lập kết nối
DataReader: đọc dữ liệu, chỉ xử lý 1 dòng dữ liệu tại một thời điểm
DataAdapter: cầu nối giữa DB và DataSet

7


ADO.NET:
- Phần ngắt kết nối: là DataSet, DataSet xem như một DB trong bộ nhớ:
bảng, quan hệ…
- DataSet có các thành phần:






DataTable

DataRow
DataColumn
DataRelation
Các đối tượng nhóm:
DataColumnCollection

DataTableCollection,

DataRowCollection,

8


Mô hình đối tượng ADO.NET:

9


ADO.NET:
- Là mô hình cho phép thao tác với nhiều loại CSDL.
- Ứng với mỗi loại CSDL sẽ là một .NET Framework Data Provider thích
hợp.

10


Mô hình .NET Provider:

11



Các đối tượng của ADO.NET:

12


Đối tượng Connection:
- Thuộc tính:
 ConnectionString: chuỗi kết nối DataSource (DS)

- Phương thức:
 Open(): thiết lập kết nối đến DS
 Close(): đóng kết nối với DS

13


Đối tượng Connection:
- Cách 1:
SqlConnection DbCon = new SqlConnection();
DbCon.ConnectionString = @“server= .\SQLEXPRESS;
database=QLBH; Trusted_Connection=true”;
DbCon.Open();//mở kết nối
//xử lý trong quá trình kết nối

DbCon.Close(); //đóng kết nối

14



Đối tượng Connection
- Cách 2:
string ConString=@“server= .\SQLEXPRESS; database=QLBH;
Trusted_Connection=true”;
SqlConnection DbCon = new SqlConnection(ConString);
DbCon.Open();
//xử lý trong quá trình kết nối

DbCon.Close();
Đặt chuỗi kết nối dung chung:
1. R_Click vào Project->properties->Settings
Name: đặt tên chuỗi kết nối
Type: Connection String
Scope: Application
Value:”server=(local);database=QLD_SV;integrated security=true”
2.Program.cs: đặt một biến tĩnh
public static string Qlconstring =tên project. .Properties.Settings.Default.tên chuỗi kết nối;
15


Đối tượng Command:
- Thuộc tính:
 Connection: kết nối để thực hiện lệnh
 CommandText: câu lệnh cần thực hiện (tên bảng, câu lệnh
SQL, tên StoredProcedure)
 CommandType: loại câu lệnh (Text, TableDirect, StoredProc)
 Parameters: tập tham số dùng trong StoredProc

16



Đối tượng Command:
- Phương thức:
 ExecuteScalar(): thực hiện câu lệnh và trả về giá trị đơn.
 ExecuteNonQuery(): gọi các lệnh SQL, StoredProc, trả về số
row bị tác động (Insert, Update, Delete)
 ExecuteReader(): thực hiện lệnh và trả về DataReader

17


Đối tượng Command:
- Đếm số sản phẩm trong bảng SanPham:
public int CountSP()
{
SqlConnection con = new
SqlConnection(Program.BHConString);
con.Open();
SqlCommand cmd = new SqlCommand("select count(*) from
SANPHAM");
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
int count=(int)cmd.ExecuteScalar();
con.Close();
return count;
}
18


Đối tượng Command:

- Thuộc tính Parameters
- Ví dụ: Tìm mã sản phẩm trong bảng SanPham
public string SelectSP(string ma)
{ string id;
SqlConnection con = new
SqlConnection(Program.BHConString);
con.Open();
SqlCommand cmd = new SqlCommand("sanpham_Select");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
cmd.Parameters.Add("@Masp", ma);
id = (string)cmd.ExecuteScalar();
con.Close();
return id;
}
19


Đối tượng Command:
- Thuộc tính Parameters
- Ví dụ: Tìm mã sản phẩm trong bảng SanPham
CREATE PROCEDURE SanPham_Select
@masp nvarchar(5)
AS
BEGIN
SELECT * from SANPHAM where masp=@masp
END

20



Đối tượng Command:
- Thêm một sản phẩm mới dùng SQL
public void InsertSQL()
{ mở
ở kếế
t nốế
i CSDL
string cmdString = "Insert into SANPHAM (masp, tensp,
donvitinh, dongian) values ('MH111','Màn
hình','cái',760)";
SqlCommand cmd = new SqlCommand(cmdString);
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
cmd.ExecuteNonQuery();
đóng kếế
t nốế
i CSDL
}

21


Đối tượng Command:
- Thêm sản phẩm mới dùng StoredProc có tham số
public void InsertDb(Sanpham sp)
{ mở
ở kếế
t nốế
i CSDL

SqlCommand cmd = new SqlCommand("SANPHAM_Insert");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
cmd.Parameters.Add("@Masp", sp.masp);
cmd.Parameters.Add("@Tensp", sp.tensp );
cmd.Parameters.Add("@Donvitinh", sp.dvt );
cmd.Parameters.Add("@Dongia", sp.gianhap );
cmd.Parameters.Add("@Hinhanh",
SqlDbType.VarBinary).Value=ByteArray(sp.hinhanh );
cmd.ExecuteNonQuery();
đóng kếế
t nốế
i CSDL
}
22


Đối tượng Command:
- StroredProcedure:
CREATE PROCEDURE SanPham_Insert
@MaSP nvarchar(5),
@TenSP nvarchar(50),
@Donvitinh nvarchar(20),
@Dongia decimal(18,0),
@HinhAnh varbinary(max)
AS
BEGIN
insert into SANPHAM(MaSP,TenSP,Donvitinh,DongiaN,
HinhAnh)
values(@MaSP,@TenSP,@Donvitinh,@Dongia, @HinhAnh)

END

23


Đối tượng DataReader:

DataReader

Connection
Command

Application

Database

- Truy xuất tuần tự, chỉ đọc dữ liệu
- Thuộc tính, phương thức:





HasRow: cho biết câu truy vấn có trả về dữ liệu
Read(): đọc một mẫu tin
[i]: truy xuất đến cột i của mẫu tin được đọc
Close(): đóng
24



Đối tượng DataReader:
public List<Sanpham> SelectAll()
{
List<Sanpham> lsSanpham = new List<Sanpham>();
Mở
ở kếế
t nốế
i CSDL
SqlCommand cmd = new SqlCommand(“Sanpham_SelectAll");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
SqlDataReader dr =
cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (dr.Read())
{ Sanpham sp = new Sanpham();
sp.masp = (string)dr["masp"];
...
lsSanpham.Add(sp);
}
dr.Close();
return lsSanpham;
}
25


×