1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn lập trình cơ sở dữ liệu DATASET & DATAREADER

41 853 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 41
Dung lượng 275,28 KB

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

Nội dung

Điều này có nghĩa là bạn có thể sử dụng đối tượng này để nắm giữ dữ liệu của cơ sỡ dữ liệu bất kỳ tùy thuộc vào trình điều khiển cơ sở dữ liệu .NET Data Provider, ở đây chúng ta đề cập đ

Trang 1

Trường ĐH Công Nghệ Thông Tin

Khoa Hệ Thống Thông Tin

DATASET & DATAREADER

Môn: Lập Trình CSDL

Nhóm: Trương Thanh Danh

Nguyễn Hoàng Dũng

Nguyễn Tấn Huy

Trang 2

DataSet

Trang 3

DataSet là thành phần chính của khiến trúc không kết nối cơ sở dữ liệu Bản thân nó được xem như là một Container dùng để chứa các đối tượng

DataTable, DataView và DataRelation

Đối tượng DataSet được sử dụng cho mọi cơ sở

dữ liệu Điều này có nghĩa là bạn có thể sử dụng đối tượng này để nắm giữ dữ liệu của cơ sỡ dữ liệu bất

kỳ tùy thuộc vào trình điều khiển cơ sở dữ liệu

(.NET Data Provider), ở đây chúng ta đề cập đến

SQL Server Chúng ta có thể thay đổi dữ liệu bên

trong đối tượng này để sau đó cập nhật trở lại cơ sở

dữ liệu nguồn bằng phương thức Update của đối

tượng SqlDataAdapter

Trang 4

1/ Khai báo và khởi tạo:

Đối tượng DataSet thuộc không gian tên

System.Data, chính vì vậy khi làm việc với đối tượng này, bạn cần khai báo sử dụng không gian tên

System.Data.

Chúng ta có thể khai báo như sau:

DataSet ds;

Sau khi khai báo đối tượng, để sử dụng được

chúng chúng, ta có thể khởi tạo theo các cách sau:

ds = new DataSet();

hoặc

ds = new DataSet(“Name”);

Trang 5

Lưu ý Khi khởi tạo đối tượng DataSet, nếu không cung cấp tên thì nó sẽ mang tên là NewDataSet.

Bạn cũng có thể vừa khai báo vừa khởi tạo DataSet như sau:

DataSet ds = new DataSet(“Name”);

DataSet ds = new DataSet();

Hoặc có thể dùng một phương thức có kiểu trả về

là một đối tượng DataSet để gán giá trị cho một đối

tượng DataSet mà không cần phải khởi tạo

DataSet ds = getDataSet (“Select * from tblStudent”);

Trang 6

Khai báo đoạn chương trình

private void btnShowDataSetName_click (object sender, EventArgs e)`

{

DataSet ds = new DataSet("Day la ten DataSet");

MessageBox.Show("Tên DataSet này là: " + ds.DataSetName);

}

Trang 7

Khi thực thi chương trình khi click vào nút ShowDataSetName ta sẽ có kết quả như sau:

Trang 8

2.2 Thuộc tính Tables

DataSet được mệnh danh là Container chứa danh sách các đối tượng DataTable Để truy cập các đối tượng DataTable trong đối tượng DataSet, ta có thể

sử dụng thuộc tính Tables

Thuộc tính Tables trả về tập bao gồm các danh sách các đối tượng DataTable trong đối tượng DataSet

Trang 9

Ví dụ:

Ta sử dụng thuộc tính Tables để đưa dữ liệu của Table

Student thuộc đối tượng ds vào DataGridView

private void btnConnect_Click(object sender, EventArgs e)

Trang 10

• Kết quả:

Trang 11

Lưu ý:

Thuộc tính Tables trả về DataTale Collection, ta có

thể sử dụng một số phương thức để thêm, xóa đối

tượng DataTable Vào đối tượng DataSet và một số thuộc tính khác như sau:

Phương thức Add:

Cho phép chúng ta thêm một đối tượng DataTable vào đối tượng DataSet Chẳng hạn, ta khai báo và khởi tạo đối tượng DataTable, sau đó thêm vào đối tượng

DataSet đang có

DataSet ds = new DataSet();

DataTable dataTable = new DataTable();

dataSet.Tables.Add(dataTable);

Trang 12

Phương thức Remove và RemoveAt:

Cho phép ta xóa một đối tượng DataTable ra khỏi đối tượng DataSet hay tên đối tượng DataTable chỉ

định:

Ví dụ, ta khái báo và khởi tạo đối tượng DataTable rồi thêm vào đối tượng DataSet đang có, sau đó khai báo xóa đối tượng DataTable

DataSet ds = new DataSet():

DataTable dataTable = new DataTable();

ds.Tables.Add(dataTable);

ds.Tables.Remove(dataTable);

Trang 13

DataSet ds = new DataSet():

DataTable dataTable = new

phương thức RemoveAt như sau:

DataSet ds = new DataSet():

DataTable dataTable = new

DataTable(“Student”);

ds.Tables.Add(dataTable);

ds.Tables.RemoveAt(0);

Trang 14

Phương thức Clear:

Cho phép bạn loại bỏ tất cả các đói tượng

DataTable tồn tại trong đốitượng DataSet với cú pháp như sau:

DataSet ds = new DataSet():

DataTable dataTable = new DataTable(“Student”); ds.Tables.Add(dataTable);

ds.Tables.Clear();

Trang 15

Phương thức CanRemove

Trả về true nếu tham số ứng với đối tượng

DataTable đang tồn tại và có thể cho phép loại bỏ chúng trong đối tượng DataSet, cú pháp:

DataSet ds = new DataSet():

DataTable dataTable = new DataTable(“Student”); ds.Tables.Add(dataTable);

if (ds.Tables.CanRemove(dataTable))

ds.Table.Remove(“Student”);

Trang 16

Phương thức Contains:

Cho phép bạn kiểm tra đối tượng DataTable có tồn tại trong đối tượng DataSet hay không bằng cú pháp như sau:

DataSet ds = new DataSet();

Trang 18

3/ Phương thức

Ngoài các thuộc tính vừa trình bày ở trên, đối

tượng DataSet cung cấp một số phương thức như : GetChanges, AcceptChanges, RejectChange, Clear, WriteXml, ReadXml và CreateDataReader

3.1/ Phương thức GetChanges

Phương thức này trả về đối tượng DataSet gồm danh sách các đối tượng DataTable chứa dựng những mẫu tin có thay đổi hoặc thêm mới

Khi có nhu cầu về thêm mới, xóa, thay đổi dữ liệu trên đối tượng DataSet và cần cập nhật lại cơ sở dữ liệu nguồn, bạn có thể sử dụng phương thức này để trích lọc ra danh sách những đối tượng chứa những mẫu tin đã thay đổi

Trang 19

Ví dụ:

Sau khi trình bày bảng “Student” trên

dataGridView1 ta thêm mới một mẫu tin như sau:

Trang 20

• Và sửa lại mẫu tin có ID là “1”

Trang 21

• Sau khi nhấn nút “GetChanges” ta sẽ được kết quả như sau:

Trang 22

Để làm được điều này ta khai báo biến cố click

button GetChanges như sau :

private void btnGetChanges_Click(object sender, EventArgs e)

Trang 23

Chúng ta có thể sử dụng phương thức GetChanges để tạo ra một đối tương DataSet mới chứa các mẩu tin bị thay đổi, sau đó chúng

ta dùng đối tượng DataSet này để cập nhật lại CSDL:

private void btnAcceptChanges_Click(object sender, EventArgs e)

{

// Sử dụng phương thức GetChanges để lấy dữ liệu cần update

DataSet dsChange = new DataSet();

Trang 24

3.2/ Phương thức AcceptChanges và RejectChanges

Để chấp nhận sự hay từ chối sự thay đổi dữ liệu do người dùng thực hiện bạn có thể gọi phương thức AcceptChanges hay RejectChanges Gọi phương thức AcceptChanges:

private void btnAcceptChanges_Click(object sender, EventArgs e)

{

ds.AcceptChanges();

}

Gọi phương thức RejectChanges :

private void btnRejectChanges_Click(object sender, EventArgs e)

Trang 25

3.3/ Phương thức Clear:

Xóa tất cả các đối tượng DataTable, DataRelation trong đối tượng DataSet

Gọi phương thức Clear:

private void btnClear_Click(object sender, EventArgs e) {

ds.Clear();

}

Trang 28

3.6/ Phương thức CreateDataReader

Phương thức này cho phép ta chuyển dữ liệu trong các đối tượng DataTable chứa trong một đối tượng DataSet thành đối tượng DataTableReader với định dạng chỉ đọc một chiều

Cú pháp

DataTableReader dataTableReader;

dataTableReader = ds.CreateDataReader();

Trang 29

DataReader

Trang 30

1.IDataReader là gì ?

IDataReader là một giao diện mô tả một Data-Reader Công việc mà giao diện IDataReader là thực hiện các truy xuất dữ liệu từ một nguồn dữ liệu có sẵn (Sql server , oracle ,Access

….)

cơ chế hoạt động của IDataReader là chỉ tiến – chỉ đọc

(forward only-read only) Điều này có nghĩa khi truy xuất

dữ liệu thì IDataReader chỉ truy xuất theo một hướng duy

nhất là hướng đến dữ liệu tiếp theo và đọc dữ liệu hiện đang truy xuất

Chúng ta cùng nhau tìm hiểu một số Data-Provider chuẩn

Trang 31

2 Một số thuộc tính và phương thước của IDataReader

Một số thuộc tính thông dụng của IDataReader

Tên thuộc

tính Mô tả

FieldCount Lấy số cột trong hàng hiện tại

IsClosed Kiểm tra xem IDataReader hiện tại đóng hay mở Ứng

với các giá trị True (đóng ) và False (mở ).

Item Đối tượng trả về là giá trị của cột trong hàng hiện tại Cột

có thể được chỉ định là số nguyên (số thứ tự của cột trong bảng với cột đầu tiên có giá trị là 0) hay một chuỗi (Tên của cột hiện tại)

Trang 32

Một số phương thức thông dụng của IDataReader

Thuộc tính Mô tả

GetDataTypeName Lấy tên của kiểu dữ liệu của một cụ thể

GetFieldType Mô tả kiểu dữ liệu trong cột cụ thể (cột được chỉ định

bằng kiểu số nguyên , mặc định cột đầu tiên là 0).

GetName Lấy tên của cột cụ thể (cột được chỉ định bằng kiểu số

nguyên , mặc định cột đầu tiên là 0).

GetOrdinal Lấy số thứ tự của cột (với cột đầu tiên là 0) và được chỉ

định bằng tên của cột GetSchemaTable Trả về đối tượng System.Data.DataTable chứa siêu dữ

liệu mô tả các cột có trong IDataReader IsDBnull Có 2 thể hiện : True nếu giá trị cụ thể trong cột là null và

False nếu giá trị cụ thể trong cột khác null NextResult Để di chuyển qua các giá trị của các cột với điều kiện

IDataReader có nhiều giá trị Mặc định giá trị ban đầu là cột đầu tiên

Read Đọc tới giá trị kế tiếp trong IDataReader Tất nhiên giá

trị đầu tiên luôn nằm ở bản ghi đầu tiên

Trang 33

Ngoài ra chúng ta nên sử dụng phương thức closed

và dispose để đóng kết nối cơ sở dữ liệu hiện tại để có thể mở lại sử dụng khi cần thiết

Cách sử dụng IDataReader để truy xuất dữ liệu

Trong giới hạn, chúng tôi chỉ thực hiện cách sử

dụng SqlDataReader để truy xuất dữ liệu trong

SqlServer Nhưng sử dụng IDataReader trong các cơ

sở dữ liệu khác cũng mang hình thức tương tự

Trang 34

Các khai báo cần thiết

Hai câu lệnh cần thiết để có thể sử dụng :

using System;

using System.Data.SqlClient ;

Chúng tôi sẽ không nói về hai câu lệnh này vìđơn giản để có thể kết nối cũng như làm việc vớiSqlServer thì bạn cần có thêm câu lệnh trên

IDataReader sử dụng trong SqlServer là

SqlDataReader

Khai báo SqlDataReader như sau :

SqlDataReader reader ;

Trang 35

Để có thể truy xuất dữ liệu, trước tiên bạn cần tạo

một kết nối tới dữ liệu :

Trang 36

Một đối tượng quan trọng để có thể sử dụng

SqlDataReader là SqlCommand (Sql command là một đối tượng lưu trữ một truy vấn trong SqlServer Các bạn tìm hiều SqlCommand để biết thêm những tính năng của nó Một phương thức quan trọng của Sql Command là executeReader() Phương thức này được gọi nó sẽ thực hiện một thực thể SqlCommand

đã được khai báo và trả về một kết quả là một kiểu IDataReader

Trang 37

Khai báo một SqlCommand

SqlCommand command= new

Trang 38

Nếu bạn muốn hiện thị dữ liệu của bạn Bạn sẽ cần đến phương thức Read() để đọc lần lượt từng dữ liệu trong

từng bản ghi của bạn chúng ta sẽ cần 1 vòng lặp để kiểm soát việc này

Và cuối cùng để lấy kết quả mà bạn muốn truy xuất bạn dùng thực thể reader ban đầu

Có 2 cách mà bạn có thể sử dụng để lấy được dữ liệu

mà bạn truy xuất tới

Trang 39

Và cuối cùng chúng ta không nên quên việc đóng kết nối khi thực hiện xong các thao tác dữ liệu của mình bằng phương thức closed().

reader.closed();

Bây giờ mình sẽ Demo một chương trình đơn giản để truy xuất dữ liệu Chương trình này mô phỏng việc truy xuất dữ liệu bằng lệnh select và sử dụng một số phương thức của đối tượng SqlDataReader với cơ sở

dữ liệu là

Một bảng gồm thông tin nhóm của mình bao gồm số thứ tự, họ và tên , địa chỉ , số điện thoại , và email

Trang 40

Đây là bảng dữ liệu của mình

Trang 41

So sánh giữa DataSet và DataReader

DataReader

Ưu điểm: Thực thi nhanh, ít tốn tài nguyên hơn

so với DataSet rất nhiều

Khuyết điểm: Tùy biến không cao, thường dùng

để lấy dữ liệu và trình bày, hạn chế chỉnh sữa CSDL

Ngày đăng: 05/04/2015, 23:41

TỪ KHÓA LIÊN QUAN

w