1. Trang chủ
  2. » Giáo án - Bài giảng

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

50 104 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 686,79 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- 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  Comman

Trang 1

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

CHỦ ĐỀ 4

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

LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI C#

Trang 4

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

Trang 7

- 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

Trang 9

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

Trang 10

- 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

Trang 11

Mô hình NET Provider:

Trang 12

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

12

Trang 13

Đối tượng Connection:

- Thuộc tính:

- Phương thức:

 Open(): thiết lập kết nối đến DS

 Close(): đóng kết nối với DS

Trang 14

Đối tượng Connection:

14

- 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

Trang 15

Đối tượng Connection

Đặ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

Trang 16

Đối tượng Command:

16

- 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)

Trang 17

Đố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)

Trang 18

Đối tượng Command:

- Đếm số sản phẩm trong bảng SanPham:

18

public int CountSP() {

SqlConnection con = new

SqlConnection ( Program BHConString);

Trang 19

Đố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;

Trang 20

Đối tượng Command:

SELECT * from SANPHAM where masp = @masp

END

Trang 21

Đối tượng Command:

Trang 22

Đối tượng Command:

- Thêm sản phẩm mới dùng StoredProc có tham số

cmd.Parameters.Add( "@Masp" , sp.masp);

cmd.Parameters.Add( "@Tensp" , sp.tensp );

Trang 23

Đố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

Trang 24

Đối tượng DataReader:

- 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

Connection Command DataReader

Trang 25

Đối tượng DataReader:

public List < Sanpham > SelectAll() { List < Sanpham > lsSanpham = new List < Sanpham >();

Mở 3 kế6 t nố6 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;

}

Trang 26

Đối tượng DataApdapter:

- Là cầu nối giữa giữa Database và DataSet

- Cung cấp 4 đối tượng Command: Select, Insert, Update, Delete

26

Data Source DataAdapter

DataTable DataSet

Fill

Update SelectCommand

UpdateCommand

Trang 27

Đối tượng DataApdater:

- Thuộc tính, phương thức:

• Fill(DataSet): sử dụng SelectCommand lấy dữ liệu từ Data Source đổ

vào Data Set

• Update(DataSet): InsertCommand, UpdateCommand, DeleteCommand cập nhật dữ liệu trong DataSet vào DataSource

Trang 28

Đối tượng DataApdater:

28

- Lấy dữ liệu trong bảng Sanpham đưa vào DataSet

public DataSet SelectAll1() {

SqlDataAdapter adapter = new SqlDataAdapter("Select * From Sanpham",Program.BHConString );

DataSet ds = new DataSet ();

adapter.Fill(ds,"SP");

return ds;

}

Trang 31

DataRow(s) DataColumn Constraint(s)

DataTable DataTable

Trang 32

32

Trang 33

DataSet vs DataReader:

Supported by Visual Studio NET tools Slower access

Forward-only Bind to one control only

Based on one SQL statement from one database

Read-only

Manually coded Faster access

Forward and backward scanning

of data Bind to multiple controls

Includes multiple tables from different databases

Read/write access to data

DataReader DataSet

Trang 34

- Thể hiện 1 bảng trong CSDL

- Thuộc tính, phương thức:

 TableName: tên của bảng dữ liệu

 Columns: danh sách các cột (lớp DataColumn)

 Rows: danh sách các mẫu tin (lớp DataRow)

 PrimaryKey: danh sách các cột là khóa chính

 NewRow(): tạo một mẫu tin mới

 Clear(): xóa toàn bộ dữ liệu trong bảng

 Copy(): tạo 1 DataTable mới cùng cấu trúc và dữ liệu

34

Trang 35

DataColumn, DataRow:

- DataColumn: đại diện cho một cột trong bảng

 ColumnName: tên cột

 DataType: kiểu dữ liệu

- DataRow: đại diện cho mẫu tin trong bảng

 RowState: trạng thái Added, Modified, Deleted,…

 [i]: truy xuất đến cột i

 Delete(): đánh dấu xóa mẫu tin

Trang 36

Ví dụ:

- Thêm sản phẩm mới dùng DataAdapter, DataSet, DataTable, DataRow

36

public void InsertAdapter( Sanpham sp)

{ SqlDataAdapter da = new SqlDataAdapter ( "Select * From

Sanpham" , Program BHConString);

SqlCommandBuilder builder = new SqlCommandBuilder (da);

DataSet ds = new DataSet (); da.Fill(ds, "SP" );

DataRow dr = ds.Tables[ "SP" ].NewRow();

dr[ "masp" ] = sp.masp; dr[ "tensp" ] = sp.tensp;

dr[ "donvitinh" ] = sp.dvt; dr[ "dongiaN" ] = sp.gianhap;

dr[ "hinhanh" ] = sp.hinhanh;

ds.Tables[ "SP" ].Rows.Add(dr);

da.Update(ds, "SP" );

}

Trang 37

SqlCommandBuilder builder = new SqlCommandBuilder (da);

DataTable dtbl = new DataTable ();

Trang 39

- Là cầu nối giữa CSDL với các điều khiển trên Form

- Chứa nguồn dữ liệu liên kết với điều khiển

- Cung cấp nhiều phương thức để điều hướng và lọc dữ liệu dễ dàng

- Thuộc tính:

 Position: vị trí dòng hiện tại của nguồn dữ liệu

 Count: số dòng trong nguồn dữ liệu

 Filter:

Trang 40

- Phương thức:

 EndEdit(): lưu thay đổi dòng hiện tại

 CancelEdit(): bỏ qua thay đổi dòng hiện tại

40

Trang 41

- Lấy dữ liệu từ bảng SANPHAM hiển thị lên DataGridView

private void Form2_Load( object sender, EventArgs e)

{

SqlDataAdapter da = new SqlDataAdapter ( "Select * From

Sanpham" , Program BHConString);

DataSet ds = new DataSet ();

Trang 42

42

- Lấy dữ liệu từ bảng SANPHAM hiển thị lên DataGridView

Trang 43

private void btnVecuoi_Click( object sender,

EventArgs e) { bs.MoveLast();

}

Trang 44

44

private void cmbMasp_SelectedIndexChanged( object sender,

EventArgs e) { string ma = cmbMasp.Text ;

if (ma != "" ) { bs.Filter = "MaSP=" + "'" + ma + "'" ; } dgSanpham.DataSource = bs;

}

Trang 45

 Row(i)(j): ô tại vị trí (i,j)

 Row(i)(j).Value: giá trị ô ở vị trí (i, j)

Trang 47

- Chọn dòng trong DatagridView hiển thị lên các control tương ứng ở phía trên:

Trang 50

Binding Navigator:

50

Ngày đăng: 22/02/2019, 09:50

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w