Lập trình web Asp.net với C# - Chương 7: Lập trình web form với ado.net
7.1 Tổng quan về ADO.Net 7.2 Các đối tượng trong ADO.Net 7.3 Xây dựng lớp xử lý dữ liệu 7.4 Xử lý giỏ hàng cho website thương mại điện tử
Bạn đang xem trước 20 trang tài liệu Lập trình web Asp.net với C# - Chương 7: Lập trình web form với ado.net, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Giảng Viên: Th.S Phạm Đào Minh Vũ
Email: phamdaominhvu@yahoo.com
1
LẬP TRÌNH WEB ASP.NET VỚI C#
263
Chương 7
Lập Trình Web Form Với ADO.Net
Khoa CNTT, Trường CĐ CNTT TP.HCM
7.1 Tổng quan về ADO.Net
7.2 Các đối tượng trong ADO.Net
7.3 Xây dựng lớp xử lý dữ liệu
7.4 Xử lý giỏ hàng cho website thương mại điện tử
264
7.1. Tổng Quan Về ADO.Net
7.1.1 Giới thiệu
Khoa CNTT, Trường CĐ CNTT TP.HCM
7.1.2 Kiến trúc ADO .Net
7.1.3 Minh họa tạo kết nối CSDL
265
Hầu hết ứng dụng windows hay website đều cần
có CSDL, để lưu trữ, xử lý, tìm kiếm và báo cáo
Khi dữ liệu trở thành trung tâm của ứng dụng thì
việc cung cấp các chức năng tới người dùng phụ thuộc
vào khả năng thao tác dữ liệu, vấn đề cần quan tâm là:
Lưu dữ liệu tập trung.
Đảm bảo toàn vẹn dữ liệu.
Đảm bảo khả năng truy xuất đồng thời.
Đảm bảo thời gian hồi đáp ngắn.
Bảo mật dữ liệu.
Trao đổi dữ liệu giữa các hệ thống khác nhau
Khoa CNTT, Trường CĐ CNTT TP.HCM
7.1.1 Giới Thiệu
266
Vấn đề này được giải quyết dựa vào khả năng
của các Hệ QTCSDL.
.Net truy xuất DL qua ADO.NET, đặc điểm chính
của ADO.NET là:
Khả năng làm việc với DL không kết nối: DL được
lưu trữ trong bộ nhớ như một CSDL thu nhỏ
(dataset), nhằm tăng tốc độ xử lý tính toán và hạn
chế sử dụng tài nguyên.
Khả năng xử lý dữ liệu chuẩn XML (Có thể trao đổi
giữa bất kỳ hệ thống nào)
Khoa CNTT, Trường CĐ CNTT TP.HCM
267
7.1.2 Kiến Trúc ADO.Net
Khoa CNTT, Trường CĐ CNTT TP.HCM
MANAGED
PROVIDER CONTENT
COMPONENT
268
Kiến trúc ADO.NET có thể chia làm 2 phần chính:
Managed Provider Component: Bao gồm các đối
tượng như DataAdapter, DataReader, giữ nhiệm
vụ làm việc trực tiếp với dữ liệu như database, file,
Content Component: Bao gồm các đối tượng như
DataSet, DataTable, đại diện cho dữ liệu thực sự
cần làm việc.
Khoa CNTT, Trường CĐ CNTT TP.HCM
269
DataReader: Là đối tượng giúp truy cập dữ liệu
nhanh chóng.
DataSet: Là một bản sao thu nhỏ của CSDL trong
bộ nhớ với nhiều bảng và các mối quan hệ.
DataAdapter: Là đối tượng kết nối giữa DataSet và
CSDL, nó bao gồm 2 đối tượng Connection và
Command để cung cấp dữ liệu cho DataSet cũng
như cập nhật dữ liệu từ DataSet xuống CSDL.
Khoa CNTT, Trường CĐ CNTT TP.HCM
270
7.1.3 Minh họa tạo kết nối CSDL
Khoa CNTT, Trường CĐ CNTT TP.HCM
Cơ bản các bước thực hiện với database
Bước 1: Tạo kết nối
Bước 2: Mở kết nối dữ liệu
Bước 3: Tạo lệnh điều khiển truy vấn SQL
Bước 4: Thực thi lệnh
Bước 5: Đóng kết nối
Bước 6: in kết quả
271
Khoa CNTT, Trường CĐ CNTT TP.HCM
using System;
using System.Data;
using System.Data.SqlClient;
public partial class vd1 : System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e) {
//Khai báo và khởi tạo biến Connection
SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
cnn.Open(); //Mở kết nối
//Command điều khiển truy vấn sql
SqlCommand cmd = cnn.CreateCommand();
cmd.CommandText="select TenKH from Khachhang where MaKH=5";
//lấy về chuỗi giá trị trong cơ sở dữ liệu
string result = (string)cmd.ExecuteScalar();
cnn.Close(); //đóng kết nối
Response.Write(result); //in giá trị ra màn hình
}
}
Ví dụ:
272
7.2. Các đối tượng trong ADO.Net
7.2.1 Connection
7.2.2 Command
Khoa CNTT, Trường CĐ CNTT TP.HCM
273
7.2.1 Connection
Vai trò của Connection trong ADO.net là tạo kết
nối giữa ứng dụng với CSDL
Data Provider
System.Data.Oledb : Sử dụng với Access
System.Data.SqlCient : Sử dụng với SQLServer
Ứng với mỗi tên miền:
System.Data.Oledb.OledbConnection
System.Data.SqlClient.SqlConnection
Và các Data Provider khác:
System.data.OcracleClient(Ocracle)
MicroSoft.data.Odbc(Thông qua ODBC của HĐH)
Microsoft.Data.Sqlxml (XML trên Sqlserver)
Khoa CNTT, Trường CĐ CNTT TP.HCM
274
Connection String:
Khi thực hiện kết nối cần khai báo các thông tin
cho Connection thông qua thuộc tính Connection String.
Tùy thuộc vào Data Provider:
Khoa CNTT, Trường CĐ CNTT TP.HCM
Nếu kết nối với CSDL Access
Provider: Khai báo Data Provider của Access
Data Source: Tên tập tin CSDL (.mdb)
User ID: Tên người dùng
Password : Mật khẩu
275
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ: Tạo kết nối với CSDL Access
using System;
using System.Data;
using System.Data.OleDb;
public partial class VD2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
String StrCnn="Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=" + Server.MapPath("~/App_Data/QLBansach.mdb");
OleDbConnection cnn = new OleDbConnection (StrCnn);
cnn.Open();
//Truy xuất, xử lý dữ liệu
cnn.Close();
}
}
276
Khoa CNTT, Trường CĐ CNTT TP.HCM
Nếu kết nối với CSDL SQLServer
Data Source/Server: Tên Server
Initial Catalog/DataBase: Tên CSDL
User ID/UID: Tên người dùng
Password/ PWD: Mật khẩu
Integrated Security: Cơ chế chứng thực đăng nhập
true: tài khoản Windows;
false: Tài khoản SqlServer (ví dụ: sa)
277
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ: Tạo kết nối với CSDL SQLServer
using System;
using System.Data;
using System.Data.sqlClient;
public partial class KetnoiCSDL : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
String StrCnn= @"Data Source=MINHVU-PC\SQLEXPRESS; Initial
Catalog=QLbansach; User ID=sa;Password=;";
SqlConnection cnn = new SqlConnection(StrCnn);
cnn.Open();
//Truy xuất, xử lý dữ liệu
cnn.Close();
}
}
278
Các thuộc tính Của Connection
Database: Tên CSDL
Data Source: Tên Server
Provider: Tương ứng với Provider của HQTCSDL
State: Tình trạng kết nối của Connection:
Broken: Kết nối đã bị ngắt khi đã kết nối
Closed: Kết nối đã đóng
Connecting: Đang kết nối
Executing: Kết nối đang thực hiện một lệnh
Fetching: Kết nối đang truy xuất dữ liệu
Open: Kết nối đang mở
Khoa CNTT, Trường CĐ CNTT TP.HCM
279
Các phương thức
Change Database: Thay đổi Database làm việc
Close : Đóng kết nối
Dispose: Giải phóng bộ nhớ
Open: Thực hiện kết nối
Khoa CNTT, Trường CĐ CNTT TP.HCM
280
7.2.2 Command
Sau khi tạo kết nối CSDL, mọi thao tác với nguồn
dữ liệu có thể được thực hiện thông qua Command.
Tùy theo loại Connection đối tượng Command
thuộc tên miền:
System.Data.OleDb.OleDbCommand
System.Data.SqlClient.SqlCommand
Khoa CNTT, Trường CĐ CNTT TP.HCM
281
Tạo Command
Cú pháp:
As New ;
.Connection=;
.CommandText=Lệnh SQL>;
Hoặc
As New ();
.Connection=;
Khoa CNTT, Trường CĐ CNTT TP.HCM
282
Các thuộc tính Của Command
CommandText: Lệnh SQL hay tên Procedure
CommandType: Loại Command
Text: (Mặc định): Là câu lệnh SQL
StoredProcedure: Tên thủ tục
TableDirect: Tên của table (SQLProvider không hỗ trợ)
VD:
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * From Khachhang";
Khoa CNTT, Trường CĐ CNTT TP.HCM
283
VD: khai báo câu lệnh SQL trong SqlCommand
SqlCommand cmd = new SqlCommand("select * from Khachhang",cnn);
cnn : biến connection hoặc chuỗi connection string
Khoa CNTT, Trường CĐ CNTT TP.HCM
VD: Khai báo sử dụng 1 StoredProcedure
SqlCommand cmd = new SqlCommand;
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Sachtheogia";
284
Parameters
Lệnh SQL trong commandText có thể sử dụng
? (khi sử dụng Access)
@Tênbiến (khi sử dụng SQLServer)
thay cho trị chưa xác định và khi thực hiện sẽ
dùng đối tượng Parameters để truyền giá trị
vào dấu ?/ @Tênbiến.
Tùy theo Command Parameter sẽ khai báo khác nhau
Khoa CNTT, Trường CĐ CNTT TP.HCM
285
Access
Khoa CNTT, Trường CĐ CNTT TP.HCM
OleDbParameter = new OleDbParameter();
OleDbParameter = new
OleDbParameter ();
OleDbParameter = new
OleDbParameter (,);
286
Các thuộc tính cần chú ý:
Direction: Giá trị cho biết lọai tham số
Input: (mặc định) Loại tham số đầu vào
InputOutput: Loại tham số đầu vào và ra
Output: Loại tham số đầu ra
ReturnValue: Loại tham số nhận trị trả về
OleDbType / SqlDbType: Kiểu dữ liệu của tham số.
ParameterName: Tên tham số
Value: Giá trị tham số
Khoa CNTT, Trường CĐ CNTT TP.HCM
287
VD: Khi sử dụng OleDbCommand
cmd.CommandText="Select * From KhachHang Where MaKH=?";
OleDbParameter Par = new OleDbParameter();
Par = cmd.CreateParameter();
Par.Value="KH01";
cmd.Parameters.Add(Par);
VD: Khi sử dụng SqlDbCommand
cmd.CommandText="Select * From KhachHang Where
MaKH=@MaKH";
SqlParameter Par = new SqlParameter();
Par = cmd.CreateParameter();
Par.ParameterName="@MaKH";
Par.Value="KH01";
cmd.Parameters.Add(Par);
Khoa CNTT, Trường CĐ CNTT TP.HCM
288
Đưa tham số vào tập hợp Parameters
VD: Khi sử dụng OleDbCommand
Khoa CNTT, Trường CĐ CNTT TP.HCM
cmd.CommandText= "Select * From BangDiem Where Masv=? And MaMH=?";
OleDbParameter Par1 = new OleDbParameter();
cmd.CreateParameters.Add("Sinhvien",OleDbType.Char,4);
Par1.Value="SV01";
OleDbParameter Par2 = new OleDbParameter();
cmd.CreateParameters.Add("Monhoc",OleDbType.Char,4);
Par2.Value="MH01";
289
VD: Khi sử dụng SqlDbCommand
Khoa CNTT, Trường CĐ CNTT TP.HCM
cmd.CommandText="Select * From BangDiem Where Masv=@MaSV and
MaMH = @MaMH ";
SqlParameter Par1 = new SqlParameter();
Par1 = cmd.Parameters.Add("@MaSV",SqlType.Char,4);
Par1.Value="SV01";
SqlParameter Par2 = new SqlParameter();
cmd.CreateParameters.Add("@MaMH",SqlType.Char,4);
Par2.Value="MH01";
290
Tạo tham số và đưa vào tập hợp Parameters
VD: Procedure SpKetQuaThi cần 2 tham số đầu vào:
@MaSV , @MaMH và trả về Điểm thi của Môn học của
sinh viên đó.
Khoa CNTT, Trường CĐ CNTT TP.HCM
291
cmd.CommandText="spKetQuaThi";
cmd.CommandType=CommandType.StoredProcedure;
OleDbParameter ts3 = new OleDbParameter();
ts3.Direction=ParameterDirection.ReturnValue;
ts3.OleDbType=OleDb.OleDbType.Int;
cmd.parameters.Add(ts3);
OleDbParameter ts1 = new OleDbParameter();
cmd.Parameters.Add("@MaSV",OleDbType.Char,4);
ts1.Value="SV01";
OleDbParameter ts2 = new OleDbParameter();
cmd.Parameters.Add("@MAMH",OleDbType.Char,4);
ts2.Value="MH01";
Khoa CNTT, Trường CĐ CNTT TP.HCM
292
CREATE PROC SpKetQuaThi (
@MaSV varchar(2),
@MaMH varchar(2),
@DiemThi int output
)
AS
Select @DiemThi=DiemThi from SVMH
where MaSV=@MaSV & MaMH = @MaMH;
Khoa CNTT, Trường CĐ CNTT TP.HCM
293
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn; //bien connection;
cmd.CommandText = "SVMH";
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter ts1 = new SqlParameter("@MaSV",SqlDbType.VarChar,4);
SqlParameter ts2 = new SqlParameter("@MaMH",SqlDbType.VarChar,4);
ts1.Value = "SV01";
ts2.Value = "MH01";
cmd.Parameters.Add(ts1);
cmd.Parameters.Add(ts2);
SqlParameter ts3 = new SqlParameter("@DiemThi",SqlDbType.Int);
ts3.Direction = ParameterDirection.Output ;
cmd.Parameters.Add(ts3);
cmd.ExecuteNonQuery();
Label1.Text = cmd.Parameters["@DiemThi"].Value.ToString();
Khoa CNTT, Trường CĐ CNTT TP.HCM
294
Thực hiện Command:
Phương thức ExecuteReader: Trả về đối tượng
DataReader để đọc dữ liệu mỗi lần một dòng với
phương thức Read.(DataReader đọc dữ liệu trực tiếp
từ nguồn nên phải duy trì kết nối đến khi đọc xong)
SqlDataReader ;
= .ExecuteReader();
VD:
Khoa CNTT, Trường CĐ CNTT TP.HCM
SqlDataReader dr;
dr = cmd.ExecuteReader;
while (dr.Read())
{
Label1.Text += dr["MaNXB"] + ", " + dr["TenNXB"] + "";
}
295
Thực hiện Command:
Phương thức ExcuteNoneQuery: Dùng thực thi các
phát biểu T-Sql như: Insert, Update, Delete, Create,
Phương thức này trả về số dòng dữ liệu chiệu tác
động, ngược lại trả về -1.
VD : cmd.ExcuteNonQuery()
Phương thức ExcuteScalar: Trả về từ phát biểu
SQL dạng Select chỉ có một cột một hàng, thường
được dùng để thực thi các câu lệnh SQL như Count,
Sum, Max, Min, AVG,
Khoa CNTT, Trường CĐ CNTT TP.HCM
296
try
{
SqlConnection cnn = new SqlConnection("Data
Source=(local);Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
//Loại command là câu lệnh SQL
cmd.CommandText = "Select Count(*) From Chude";
cmd.CommandType = CommandType.Text;
//Mở kết nối và lấy dữ liệu
cnn.Open();
int count = (int)cmd.ExecuteScalar();
response.write(count.ToString());
cnn.Close();
}
catch (Exception)
{
response.write("Không thành công!");
}
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 1: Sử dụng Command với câu lệnh Select
297
try
{
SqlConnection cnn = new SqlConnection("Data Source=(local);Initial
Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
//Biến Commnad thao tác Insert, Update, Delete
cmd.CommandText = "Insert Into Chude(tencd) Values(n'văn hóa')";
cmd.CommandType = CommandType.Text;
cnn.Open();
cmd.ExecuteNonQuery();
response.write("Thành công!");
cnn.Close();
}
catch (Exception)
{
response.write("Thất bại!");
}
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 2: Sử dụng Command với lệnh Insert,Update,Delete
298
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 3: Command với lệnh Insert,Update,Delete + Tham số
try
{
SqlConnection cnn = new SqlConnection("Data Source=(local);Initial
Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "INSERT INTO CHUDE VALUES(@TENCHUDE)";
SqlParameter parTenLinhVuc =
new SqlParameter("@TENCHUDE", SqlDbType.NVarChar, 50);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(parTenLinhVuc);
parTenLinhVuc.Value = TextBox1.Text;
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
response.write("Thành công!");
}
catch (Exception)
{
response.write("Thất bại!");
}
299
7.2.3 DataReader
Là đối tượng truy cập dữ liệu trực tiếp, sử dụng con
trỏ phía Server và duy trì kết nối với Server trong suốt
quá trình đọc dữ liệu,
Tùy theo loại Connection mà DataReader thuộc tên
miền:
System.Data.OleDb.OleDbDataReader
System.Data.SqlClient.SqlDataReader
Khoa CNTT, Trường CĐ CNTT TP.HCM
300
Các thuộc tính
FieldCout: Số cột trên dòng hiện hành của
DataReader
IsClosed : Cho biết dataReader đã đóng
Item: giá trị của cột truyền vào. Tham số truyền
vào là tên cột hoặc số thứ tự tính từ 0.
Khoa CNTT, Trường CĐ CNTT TP.HCM
301
Các phương thức
Close: Đóng DataReader
GetFieldType: Trả về kiểu dữ liệu của tham số
truyền vào.
GetName: Trả về tên của cột truyền vào
GetValue: Trả về trị của cột truyền vào
Read: Di chuyển đến dòng kế tiếp và trả về true
nếu còn dòng để di chuyển, ngược lại trả về False.
Trong khi dataReader đang mở các thao tác dữ
liệu trên nguồn dữ liệu đều không thể cho đến khi
dataReader đóng lại bằng lệnh Close
Khoa CNTT, Trường CĐ CNTT TP.HCM
302
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 1:DataReader với lệnh Insert,Update,Delete +Tham số
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);Initial
Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "SELECT * FROM Nhaxuatban";
cmd.CommandType = CommandType.Text;
cnn.Open();
IDataReader dr = cmd.ExecuteReader();
String list = "";
while (dr.Read())
{
list = list + dr["TenNXB"].ToString().Trim() + " ";
}
dr.Close();
response.write(list.ToString());
cnn.Close();
}
catch (Exception)
{
response.write("Thất bại!");
}
303
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 2: DataReader + gọi procedure (VD: Getnhaxuatban)
try
{ SqlConnection cnn = new SqlConnection("Data
Source=(local);Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand("Getnhaxuatban", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
cnn.Open();
IDataReader dr = cmd.ExecuteReader();
String list = "";
while (dr.Read())
{
list = list + dr["TenNXB"].ToString();
}
dr.Close();
response.write(list.ToString());
cnn.Close();
}
catch (Exception)
{
response.write("Thất bại!");
}
304
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 2: DataReader + gọi procedure có tham số
Create Procedure GetchudeByMaCD
@Machude char(15)
AS
Begin
Select * From Chude Where MaCD=@Machude
End
305
Khoa CNTT, Trường CĐ CNTT TP.HCM
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);Initial
Ctalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand("GetchudeByMaCD", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parMALINHVUC =
new SqlParameter("@Machude", SqlDbType.NChar, 10);
parMAVHUDE.Value = TextBox1.Text;
cmd.Parameters.Add(parMACHUDE);
cnn.Open();
IDataReader dr = cmd.ExecuteReader();
String list = "";
while (dr.Read())
{
list = list + dr["Tenchude"].ToString();
}
dr.Close();
response.write(list.ToString());
cnn.Close();
}
catch (Exception)
{
response.write("Thất bại!");
}
306
7.2.4 DataAdapter
Để lấy dữ liệu từ nguồn dữ liệu về cho ứng dụng,
chúng ta sử dụng đối tượng DataAdapter. Đối tượng
này cho phép ta lấy cấu trúc và dữ liệu của các bảng.
DataAdapter là một bộ gồm 4 đối tượng:
SelectCommand: Cho phép lấy thông tin từ nguồn.
InsertCommand: Cho phép thêm dữ liệu vào bảng
trong nguồn.
UpdateCommand: Cho phép điều chỉnh dữ liệu của
bảng trong nguồn.
DeleteCommand: Cho phép xóa dữ liệu của bảng
trong nguồn.
Khoa CNTT, Trường CĐ CNTT TP.HCM
307
Tạo DataAdapter
Cú pháp:
DataAdapter =
New DataAdapter(,)
Khoa CNTT, Trường CĐ CNTT TP.HCM
DataAdapter chỉ thao tác với nguồn dữ liệu qua đối
tượng connection đang kết nối, khi Connection chưa mở
thì DataAdapter sẽ tự động mở kết nối khi cần và đóng
lại
308
Khoa CNTT, Trường CĐ CNTT TP.HCM
Các thuộc tính của DataAdapter
DeleteCommand: Đối tượng Command chứa nội
dung lệnh hủy các mẫu tin trên nguồn dữ liệu.
InsertCommand: Đối tượng Command chứa nội
dung lệnh thêm các mẫu tin trên nguồn dữ liệu.
SelectCommand: Đối tượng Command chứa nội
dung lệnh truy xuất các mẫu tin trên nguồn dữ liệu.
UpdateCommand: Đối tượng Command chứa nội
dung lệnh sửa các mẫu tin trên nguồn dữ liệu.
309
Khoa CNTT, Trường CĐ CNTT TP.HCM
Các chức năng của DataAdapter
Lấy dữ liệu từ nguồn:
- DataTable: Fill()
- DataSet: Fill()
Dữ liệu lấy về DataSet dưới dạng các dataTable
với tên là: Table0,Table1, Table2. . .
- Đổ dữ liệu vào Datset cho bảng DataTable nếu
chưa có sẽ tạo mới:
Fill(,)
310
Khoa CNTT, Trường CĐ CNTT TP.HCM
Phương thức trả về số mẫu tin lấy được
Dataset DS as New Dataset()
Integer so;
so= DA.Fill(DS, “Sinhvien”)
Để cập nhật dữ liệu về nguồn
Update(): Cập nhật các dòng (Các
đối tượng DataRow) vào nguồn dữ liệu.
Update(): Cập nhật các thay đổi trên
tất cả các bảng của Dataset vào nguồn dữ liệu.
Update(): Cập nhật tất cả các thay
đổi trên DataTable vào nguồn dữ liệu.
Update(,) Cập nhật các
thay đổi trên bảng trong Dataset vào nguồn.
311
7.2.5 Dataset
Dataset là một mô hình CSDL quan hệ thu nhỏ
đáp ứng nhu cầu của ứng dụng.
Dataset chứa các bảng (DataTable), các quanhệ
(DataRelation) và các ràng buộc (constraint)
Dataset thuộc tên miền: System.Data.Dataset.
Khai báo
New System.Data.Dataset()
Hoặc
New System.Data.Dataset()
Khoa CNTT, Trường CĐ CNTT TP.HCM
312
Khoa CNTT, Trường CĐ CNTT TP.HCM
Các phương thức
Thêm một bảng vào Dataset
Tables.Add()
Một bảng mới tự động đ