Đối tượng DataTable

Một phần của tài liệu Giáo trình xây dựng ứng dụng web (ngành hệ thống thông tin) (Trang 160 - 163)

DataTable hiển thị dữ liệu quan hệ thành dạng bảng. ADỌNET cung cấp một lớp DataTable để tạo và sử dụng bảng dữ liệu một cách độc lập. DataTable cũng có thể được sử dụng với Dataset. Ban đầu, khi chúng ta tạo DataTable, DataTable không có lược đồ bảng. Chúng ta có thể tạo lược đồ bảng bằng cách thêm các cột và các ràng buộc vào bảng. Sau khi xác định lược đồ bảng, chúng ta có thể thêm các hàng vào bảng.

Đối tượng DataTable

• Đối tượng của lớp DataTable dùng để biểu diễn một bảng.

• Một DataSet có thể chứa nhiều bảng hay nhiều đối tượng DataTablẹ

• Những bảng này được truy xuất qua thuộc tính Tables của lớp DataSet. Thuộc tính này có kiểu DataTableCollection.

KHOA CÔNG NGHỆ THÔNG TIN 158 • Một DataTable có thể chứa nhiều dòng, nhiều cột (tương ứng là DataRow và

DataColumn).

Đối tượng DataColumn và DataRow

• Đối tượng có kiểu DataRow dùng để biểu diễn một hàng (một dòng trongDataTable).

• Đối tượng thuộc lớp DataColumn được dùng để biểu diễn một cột của bảng. • Một DataTable có thể chứa nhiều DataRow và được truy xuất thông qua thuộc

tính Rows của lớp DataTablẹ Thuộc tính này có kiểu DataRowCollection. • Một DataTable cũng có thể chứa nhiều DataColumn và được truy xuất thông

qua thuộc tính Columns của lớp DataTablẹ Thuộc tính này có kiểu DataColumnCollection.

Đối tượng Constraint

• Đối tượng thuộc kiểu Constraint dùng để biểu diễn một ràng buộc cơ sở dữ liệu áp dụng cho một hoặc nhiều đối tượng DataColumn của một bảng (DataTable). • Một DataTable có thể lưu trữ nhiều đối tượng Constraint và được truy xuất

thông qua thuộc tính Constraints của lớp DataTablẹ Thuộc tính này có kiểu là ConstraintCollection.

Có 2 loại ràng buộc:

• UniqueConstraint: • ForeignKeyConstraint:

Cú pháp:

DataTable tblName = New DataTable();

DataTable tblName = New DataTable(<Tên bảng>);

Ví dụ:

string constring =

ConfigurationManager.ConnectionStrings["constr"].ConnectionString; using (SqlConnection con = new SqlConnection(constring))

KHOA CÔNG NGHỆ THÔNG TIN 159 using (SqlCommand cmd = new SqlCommand("SELECT Name, City FROM Persons", con))

{

cmd.CommandType = CommandTypẹText;

using (SqlDataAdapter sda = new SqlDataAdapter(cmd)) {

DataTable dt = new DataTable(); sdạFill(dt);

foreach (DataRow row in dt.Rows) {

string name = row["Name"].ToString(); string city = row["City"].ToString(); ResponsẹWrite("Name: " + name); ResponsẹWrite("City: " + city); } } } } Đối tượng DataView

Khi chúng ta được cung cấp 1 DataTable chứa dữ liệu nhưng chỉ cần lấy ra 1 số dòng thỏa điều kiện nào đó thôị Cách truyền thống vấn là duyệt từng dòng rồi so sánh giá trị nếu phù hợp thì lấy, không phù hợp thì bỏ quạ Sử dụng DataView để lấy dữ liệu theo điều kiện nào đó 1 cách nhanh chóng.

Ví dụ: Tạo 1 DataTable chứa thông tin tên và tuổi của một số người: DataTable table = new DataTable("table");

tablẹColumns.Ađ(new DataColumn("Name", typeof(string))); tablẹColumns.Ađ(new DataColumn("Age", typeof(int))); for (int i = 0; i < 5; i++)

KHOA CÔNG NGHỆ THÔNG TIN 160 {

DataRow NewRow = tablẹNewRow(); NewRow["Name"] = "Nguyễn Văn " + i; NewRow["Age"] = i;

tablẹRows.Ađ(NewRow); }

Bây giờ nếu chỉ muốn lấy những người có tuổi lớn hơn 2: // new 1 DataView

DataView dataView = new DataView(table); // chỉ lấy những người có tuổi lớn hơn 2 dataView.RowFilter = "Age > 2";

Vậy lúc này DataView chỉ chứa những dòng có giá trị thỏa điều kiện filter. Có thể dùng DataView này để đưa vào DataGridView.

Một phần của tài liệu Giáo trình xây dựng ứng dụng web (ngành hệ thống thông tin) (Trang 160 - 163)