Bài giảng Tổng quan về .Net và C# - Lập trình CSDL với C# - Phan Trọng Tiến

Tóm tắt Bài giảng Tổng quan về .Net và C# - Lập trình CSDL với C# - Phan Trọng Tiến: ...g Command q  Bạn thảo Stored Procedures: [CustOrdersDetail] trong CSDL NorthWind ALTER PROCEDURE [dbo].[CustOrdersDetail] @OrderID int AS SELECT ProductName, UnitPrice=ROUND(Od.UnitPrice, 2), Quantity, Discount=CONVERT(int, Discount * 100), ExtendedPrice=ROUND(CONVERT(money, Quan...i tượng DataSet q  Cư trú dữ liệu trong DataSet q  Sử dụng Relationship trong DataSet q  Sử dụng các Constraint q  Cập nhật dữ liệu trong DataSet q  Cập nhật dữ liệu tại nguồn 24 7/5/16 Lập trình CSDL với C# 7/5/16 13 Tổng quan về dữ liệu không kết nối 25 7/5/16 Lập trình CSDL vớ...ng thức này chỉ đánh dấu hàng được xoá, gọi RejectChanges sẽ undo việc xoá 32 DataRow drNewRow = dsPubs.Tables["Titles"].NewRow(); drNewRow["title"] = "New Book"; drNewRow["type"] = "business"; dsPubs.Tables["Titles"].Rows.Add(drNewRow); DataRow drChangeRow = dsPubs.Tables["Titles"].R...

pdf27 trang | Chia sẻ: havih72 | Lượt xem: 256 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Tổng quan về .Net và C# - Lập trình CSDL với C# - Phan Trọng Tiến, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
7/5/16	
1	
LẬP TRÌNH CSDL VỚI C# 
PHAN TRỌNG TIẾN 
BM Công nghệ phần mềm 
Khoa Công nghệ thông tin, VNUA 
Email: phantien84@gmail.com 
Website:  
7/5/16 Lập trình CSDL với C# 1 
Giới thiệu chung 
q  ADO.NET là một cải tiến ADO (Active Data Objects), được 
sử dụng để tương tác với CSDL hoặc các nguồn dữ liệu hỗ trợ 
bởi .NET 
q  ADO.NET cung cấp rất nhiều component cho tạo các ứng 
dụng phân tán, chia sẻ dữ liệu 
q  ADO.NET truy xuất đồng nhất tới các nguồn dữ liệu khác 
nhau như SQL Server và XML, và các nguồn dữ liệu qua OLE 
DB và ODBC 
7/5/16 Lập trình CSDL với C# 2 
7/5/16	
2	
Nội dung chính 
1.  Tổng quan 
2.  Tổng quan ADO .Net 
3.  .Net Data Provider 
4.  Demo: Lấy dữ liệu dùng ADO .Net 
5.  Đối tượng DataSet 
6.  Thiết kế và gắn kết dữ liệu 
7.  Tích hợp XML 
8.  Lab: Tạo ứng dụng ADO.Net 
3 7/5/16 Lập trình CSDL với C# 
Mục đích của chương 
q  Chương này cung cấp sinh viên kiến thức cần thiết để tạo các 
ứng dụng mức cao truy cập dữ liệu dùng C# 
q  Sau bài này sinh viên có thể: 
q Liệt kê các lợi ích ADO .Net 
q Tạo các ứng dụng dùng ADO .Net 
q Liệt kê các thành phần chính của đối tượng ADO.Net và các chức năng 
của nó. 
q Dùng VS.Net để thiết kế và gắn kết dữ liệu 
q Giải thích cách tích hợp XML cùng ADO.Net 
4 7/5/16 Lập trình CSDL với C# 
7/5/16	
3	
1. Tổng quan 
q  Bạn sẽ học cách sử dụng ADO .Net 
q  Cách sử dụng đối tượng DataSet 
q  Bạn sẽ học cách thiết kế dữ liệu trong VS.Net và cách gắn dữ 
liệu lên WinForm và WebForm. 
q  Cuối cùng bạn sẽ học cách tích hợp XML vào ADO .Net 
5 7/5/16 Lập trình CSDL với C# 
2. Tổng quan ADO .Net 
q  Giới thiệu ADO .Net 
q  Các lợi ích ADO .Net 
6 7/5/16 Lập trình CSDL với C# 
7/5/16	
4	
Giới thiệu ADO .Net 
7 7/5/16 Lập trình CSDL với C# 
Giới thiệu ADO.Net 
q  ADO.Net là một tập các lớp cho phép các ứng dụng .Net 
đọc và cập nhật thông tin DB và các nơi lưu trữ dữ liệu 
khác. Namespace: System.Data 
q  ADO.Net cung cấp đồng nhất cách truy cập các nguồn dữ 
liệu khác nhau như SQL Server, OLE DB, các nguồn dữ 
liệu không quan hệ như MS Exchange, và các tài liệu 
XML 
q  ADO.Net cải tiến khả năng disconnect tới dữ liệu. 
8 7/5/16 Lập trình CSDL với C# 
7/5/16	
5	
Giới thiệu ADO.Net 
q  ADO.Net cung cấp bốn .Net Data Providers: 
q .Net Data Provider cho SQL Server 
q .Net Data Provider cho OLE DB 
q .Net Data Provider cho ODBC 
q .Net Data Provider cho Oracle 
q  ADO.Net cung cấp nhiều công cụ cho việc đọc, cập nhật, 
thêm mới và xóa dữ liệu. Nhiều đối tượng trong thư viện 
là tương tự nhau và được nhận diện qua tên tiền tố của 
chúng ví dụ như SqlDataReader và OleDbDataReader 
cả hai đều cung cấp đọc các bản ghi từ nguồn dữ liệu. 
9 7/5/16 Lập trình CSDL với C# 
Các lợi ích của ADO.Net 
q  Tương tự như ADO 
q  Được thiết kế cho dữ liệu không kết nối. 
q  Nằm trong nội tại .Net Framework nên dễ dàng trong việc 
sử dụng ngôn ngữ để phát triển. 
q  Hỗ trợ XML 
q ADO và XML có trước nhưng không tương thích 
q ADO dựa trên cơ sở dữ liệu quan hệ. 
q XML dựa trên cơ sở dữ liệu phân cấp. 
q ADO.Net kết hợp hai công nghệ này lại với nhau. 
10 7/5/16 Lập trình CSDL với C# 
7/5/16	
6	
3. .Net Data Provider 
q  .Net Data Provider cho phép truy cập các nguồn dữ liệu xác định: 
q System.Data.SqlClient dùng truy câp SQL Server 7.0 trở lên 
q System.Data.OleDb dùng truy cập bất kỳ nguồn dữ liệu nào hỗ trợ OLE 
DB 
q System.Data.Odbc 
q System.Data.OracleClient 
q  Dùng đối tượng Connection 
q Kết nối tới một Database 
q  Dùng đối tượng Command 
q Thực thi các câu lệnh và các tuỳ chọn và trả về dữ liệu từ 
q Dùng đối tượng Command với các Stored Procedure 
q  Dùng đối tượng DataReader 
q đối tượng để tạo một luồng dữ liệu chỉ đọc 
q  Dùng đối tượng DataAdapter 
q đối tượng để trao đổi dữ liệu giữa nguồn và một DataSet 
11 7/5/16 Lập trình CSDL với C# 
Đối tượng Connection 
q  Dùng để kết nguồn dữ liệu, chuỗi kết nối được thiết lập qua 
thuộc tính ConnectionString 
q  SqlConnection 
SqlConnection conSQL = new SqlClient.SqlConnection( ); 
conSQL.ConnectionString = “Server = localhost; DataSource = Northwind; Uid = sa; 
Pwd = admin123;”; 
conSQL.Open( ); 
q  OleDbConnection 
OleDbConnection conAccess = new OleDb.OleDbConnection( ); 
conAccess.ConnectionString = "Provider= 
Microsoft.Jet.OLEDB.4.0;Data Source=c:\NWind.MDB”; 
conAccess.Open( ); 
12 7/5/16 Lập trình CSDL với C# 
7/5/16	
7	
Đối tượng Command 
q  Được dùng để thực hiện các câu truy vấn (query) và tuỳ chọn 
có thể trả về kết quả 
q  Có thể dùng với các stored query và procedure chấp nhận các 
tham số truyền vào 
Tên Mô tả 
CommandText Thuộc tính chỉ định câu lệnh SQL hoặc tên Stored 
procedure 
CommandType Thuộc tính xác định kiểu câu lệnh SQL 
Connection Thuộc tính cung cấp vào đối tượng Connection 
CreateParameter Phương thức để cung cấp các Parameter của câu lệnh SQL 
7/5/16 Lập trình CSDL với C# 13 
Đối tượng Command 
q  Có hai cách để tạo đối 
tượng Command: 
q Sử dụng Contructor 
Command 
q Sử dụng phương thức 
CreateCommand 
q  Có ba cách để thực thi 
một Command: 
q ExecuteReader 
q ExecuteScalar 
q ExecuteNonQuery 
q ExecuteXMLReader 
14 
SqlCommand commSQL = new SqlCommand( ); 
commSQL.Connection = conSQL; 
commSQL.CommandText = "Select Count(*) from Products”; 
MessageBox.Show(commSQL.ExecuteScalar( ).ToString); 
7/5/16 Lập trình CSDL với C# 
7/5/16	
8	
Đối tượng Command với các Stored 
Procedure 
q  Tạo một đối tượng Command 
q  Thiết lập CommandType là StoredProcedure 
q  Dùng phương thức Add để tạo và thiết lập các biến 
(Parameter) 
q  Dùng thuộc tính ParameterDirection để thiết lập kiểu biến 
q  Gọi phương thức ExecuteReader 
q  Dùng đối tượng DataReader để hiển thị hoặc duyệt qua các 
bản ghi và đóng khi kết thúc 
q  Truy cập đầu ra và trả về các biến 
15 7/5/16 Lập trình CSDL với C# 
Demo: Đối tượng Command 
q  Bạn thảo Stored Procedures: [CustOrdersDetail] trong CSDL NorthWind 
ALTER PROCEDURE [dbo].[CustOrdersDetail] @OrderID int 
AS 
SELECT ProductName, 
 UnitPrice=ROUND(Od.UnitPrice, 2), 
 Quantity, 
 Discount=CONVERT(int, Discount * 100), 
 ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2) 
FROM Products P, [Order Details] Od 
WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID 
q  Code C#: 
 private void btnFind_Click(object sender, EventArgs e) 
 { 
 SqlConnection conn = new SqlConnection("Server=TIENPT\
\SQL;Database=NorthWind;Uid=sa;Pwd=admin123"); 
 if (conn.State != ConnectionState.Open) 
 { 
 conn.Open(); 
 } 
16 7/5/16 Lập trình CSDL với C# 
7/5/16	
9	
Demo: Đối tượng Command 
 SqlCommand cmd = new SqlCommand(); 
 cmd.Connection = conn; 
 cmd.CommandType = CommandType.StoredProcedure; 
 cmd.CommandText = "CustOrdersDetail"; 
 SqlParameter orderID = new SqlParameter("@OrderID", 
SqlDbType.Int); 
 orderID.Value = 10250; 
 cmd.Parameters.Add(orderID); 
 SqlDataReader dr = cmd.ExecuteReader(); 
 while (dr.Read()) 
 { 
 MessageBox.Show(dr[0].ToString()); 
 } 
 dr.Close(); 
 } 
17 7/5/16 Lập trình CSDL với C# 
Đối tượng DataReader 
q  Đọc dữ liệu 
 SqlCommand cmd = new SqlCommand(); 
 cmd.Connection = conn; 
 cmd.CommandText = "SELECT [CustomerID],[CompanyName],
[ContactName],[ContactTitle],[Address] FROM [Customers]"; 
 SqlDataReader dr = cmd.ExecuteReader(); 
 while (dr.Read()) 
 { 
 MessageBox.Show(dr.GetString(0) + " - " + dr.GetString(1) +" - 
"+ dr.GetString(2)); 
 } 
 dr.Close(); 
q  Lấy thông tin 
q  Trả về nhiều tập hợp kết quả 
18 7/5/16 Lập trình CSDL với C# 
7/5/16	
10	
Đối tượng DataAdapter 
7/5/16 Lập trình CSDL với C# 19 
Đối tượng DataAdapter 
q  Được sử dụng để trao đổi dữ liệu giữa data source và đối 
tượng DataSet 
q  Có thể lấy dữ liệu và insert vào đối tượng DataTable trong 
DataSet và cập nhật những thay đổi DataSet trở lại data 
source 
q  Có 2 cách tạo đối tượng DataAdapter 
q Sử dụng đối tượng Connection tồn tại 
q Mở kết nối Connection nếu cần thiết 
q  Dùng phương thức Fill để đặt dự liệu vào DataSet hoặc 
DataTable, và dùng phương thức Update để đồng bộ dữ liệu 
thay đổi tới data source 
20 7/5/16 Lập trình CSDL với C# 
7/5/16	
11	
Sử dụng đối tượng Connection tồn tại 
q  Tạo đối tượng Command cùng với Connection, và khởi gán thuộc 
tính SelectComand của đối tượng DataAdapter 
 private void frmProducts_Load(object sender, EventArgs e) 
 { 
 SqlConnection con = new SqlConnection(); 
 con.ConnectionString = "Server=TIENPT\\SQL; 
Database=Northwind;Uid = sa; Pwd = admin123"; 
 con.Open(); 
 SqlCommand cmd = new SqlCommand("Select * from 
Products",con); 
 SqlDataAdapter adp = new SqlDataAdapter(); 
 adp.SelectCommand = cmd; 
 DataSet ds = new DataSet(); 
 adp.Fill(ds); 
 dgvProducts.DataSource = ds.Tables[0]; //DataGridView 
 dgvProducts.Refresh(); 
 } 
7/5/16 Lập trình CSDL với C# 21 
Mở kết nối Connection nếu cần thiết 
q  Khởi tạo đối tượng DataAdapter đặt vào các tham số là 
chuỗi query và đối tượng Connection 
q  Nó sẽ tự kiểm tra Connection, sẽ tự động mở và đóng khi 
hoàn thành 
 private void frmProducts_Load(object sender, EventArgs e) 
 { 
 SqlConnection con = new SqlConnection(); 
 con.ConnectionString = "Server=TIENPT\
\SQL;Database=Northwind;Uid = sa; Pwd = admin123"; 
 SqlDataAdapter adp = new SqlDataAdapter("Select * from 
Products", con); 
 DataSet ds = new DataSet(); 
 adp.Fill(ds); 
 dgvProducts.DataSource = ds.Tables[0];//DataGridView 
 dgvProducts.Refresh(); 
 } 
7/5/16 Lập trình CSDL với C# 22 
7/5/16	
12	
4. Demo: Lấy dữ liệu dùng ADO .Net 
q  Bạn sẽ học cách lấy dữ liệu từ CSDL SQL Server bằng việc 
dùng đối tượng SQLDataAdapter trong .NET. 
23 7/5/16 Lập trình CSDL với C# 
5. Đối tượng DataSet 
q  Tổng quan về dữ liệu không kết nối 
q  Đối tượng DataSet 
q  Cư trú dữ liệu trong DataSet 
q  Sử dụng Relationship trong DataSet 
q  Sử dụng các Constraint 
q  Cập nhật dữ liệu trong DataSet 
q  Cập nhật dữ liệu tại nguồn 
24 7/5/16 Lập trình CSDL với C# 
7/5/16	
13	
Tổng quan về dữ liệu không kết nối 
25 7/5/16 Lập trình CSDL với C# 
Tổng quan về dữ liệu không kết nối 
q Mỗi công nghệ truy cập dữ liệu đều đã được cải thiện 
khái niêm không kết nối, nhưng đến ADO.Net mới 
cung cấp giải pháp cách đầy đủ. 
q ADO.Net được thiết kế dùng cho Internet 
q ADO.Net sử dụng XML truyền tải định dạng dữ liệu. 
q ADO.Net cung cấp một đối tượng mới cho việc 
caching dữ liệu trên máy client. Đối tượng này là 
DataSet 
26 7/5/16 Lập trình CSDL với C# 
7/5/16	
14	
Đối tượng DataSet 
27 7/5/16 Lập trình CSDL với C# 
Cư trú dữ liệu trong DataSet 
q  Cư trú dữ liệu trong DataSet từ một RDBMS 
 SqlDataAdapter adp = new SqlDataAdapter("Select * from Products", 
con); 
 DataSet ds = new DataSet(); 
 adp.Fill(ds, "Products"); 
q  Lập trình tạo Dataset 
 DataSet dsPubs = new DataSet(); 
 DataTable dtAuthor = new DataTable("Author"); 
 dtAuthor.Columns.Add("AuthorID", Type.GetType("System.Int32")); 
 dsPubs.Tables.Add(dtAuthor); 
 dgvProducts.DataSource = dsPubs.Tables[0];//DataGridView 
 dgvProducts.Refresh(); 
28 7/5/16 Lập trình CSDL với C# 
7/5/16	
15	
Sử dụng Relationship trong DataSet 
q  Tạo Relationship 
DataRelation relPubsTitle = new 
DataRelation("PubsTitles",dsPubs.Tables["Publishers"].Columns[
"pub_id"],dsPubs.Tables["Titles"].Columns["pub_id"]); 
dsPubs.Relations.Add(relPubsTitle); 
q  Truy cập dữ liệu quan hệ 
 //Lay ban ghi dau tien trong bang Publishers 
 DataRow pubRow = dsPubs.Tables["Publishers"].Rows[0]; 
 //Lay cac ban ghi con cua quan he bang Publishers va Titles 
 DataRow[] titleRows = 
 pubRow.GetChildRows("PubsTitles"); 
29 7/5/16 Lập trình CSDL với C# 
Sử dụng các Constraint 
q  Bạn có thể tạo các ràng buộc riêng cho DataSet hoặc 
copy các ràng buộc tồn tại từ data source. 
q  Tạo mới các ràng buộc: có thể áp dụng 2 kiểu ràng buộc 
q ForeignKeyConstraints: đây là ràng buộc xảy ra khi một hàng con cũng 
được cập nhật khi hàng cha được update hoặc delete. Sau đây là bảng giá trị cho 
các thộc tính DeleteRule và UpdateRule 
30 
Cascade delete hoặc update bất kỳ bản ghi nào theo bản ghi cha 
SetNull Thiết lập giá trị liên quan thành DBNull 
SetDefault Thiết lập các giá trị liên quan theo giá trị mặc định 
None Không tác động tới các hàng liên quan 
DataColumn colParent = dsPubs.Tables["Publishers"].Columns["pub_id"]; 
DataColumn colChild = dsPubs.Tables["Titles"].Columns["pub_id"]; 
ForeignKeyConstraint fkcPubsTitles = new ForeignKeyConstraint("PubsTitlesFKC",colParent,colChild); 
fkcPubsTitles.DeleteRule = Rule.SetNull; 
fkcPubsTitles.UpdateRule = Rule.Cascade; 
dsPubs.Tables["Titles"].Constraints.Add(fkcPubsTitles); 
dsPubs.EnforceConstraints = true; 
7/5/16 Lập trình CSDL với C# 
7/5/16	
16	
Sử dụng các Constraint 
q UniqueConstraints: đây là ràng buộc đảm bảo các giá trị trong 
một cột hoặc nhiều cột là duy nhất. 
q  Sử dụng Constraint tồn tại 
q Nếu đã tồn tại các ràng buộc trong RDBMS, có thể copy trực tiếp 
tới DataSet 
q Sử dụng phương thức FillSchema để copy 
UniqueConstraint ucTitles = new UniqueConstraint("UniqueTitles", 
dsPubs.Tables["Titles"].Columns["title"]); 
dsPubs.EnforceConstraints = true; 
SqlConnection con = new SqlConnection("Server=TIENPT\\SQL;Database=Northwind;Uid = 
sa; Pwd = admin123"); 
SqlDataAdapter adp = new SqlDataAdapter("Select title_id,title,type,price from Titles",con); 
adp.FillSchema(dsPubs, SchemaType.Source, "Titles"); 
adp.Fill(dsPubs,"Titles"); 
//Thực hiện cập nhật dữ liệu trong dsPubs và cập nhật lại nguồn 
adp.Fill(dsPubs,"Titles"); 
7/5/16 Lập trình CSDL với C# 31 
Cập nhật dữ liệu trong DataSet 
q  Thêm một Row mới 
q  Thay đổi Rows 
q  Xóa dữ liệu 
Phương thức này chỉ đánh dấu hàng được xoá, gọi RejectChanges sẽ 
undo việc xoá 
 32 
DataRow drNewRow = dsPubs.Tables["Titles"].NewRow(); 
drNewRow["title"] = "New Book"; 
drNewRow["type"] = "business"; 
dsPubs.Tables["Titles"].Rows.Add(drNewRow); 
DataRow drChangeRow = dsPubs.Tables["Titles"].Rows[0]; 
drChangeRow.BeginEdit(); 
drChangeRow["title"] = drChangeRow["title"].ToString() + " 1"; 
drChangeRow.EndEdit(); 
DataRow drDelRow = dsPubs.Tables["Titles"].Rows[0]; 
dsPubs.Tables["Titles"].Rows.Remove(drDelRow); 
7/5/16 Lập trình CSDL với C# 
7/5/16	
17	
Xác nhận thay đổi dữ liệu 
q  Để cập nhật DataSet, dùng các phương thức thích hợp để 
chỉnh sửa bảng, rồi gọi AcceptChanges hoặc RejectChanges 
cho mỗi dòng hoặc cho toàn bộ bảng 
q  Bạn có thể kiểm tra trạng thái của hàng qua thuộc tính 
RowState, các trạng thái: 
Unchanged Không có bất cứ thay đổi nào được làm 
Added Hàng dữ liệu đã bị thêm tới bảng 
Modified Một số thứ trong hàng đã bị thay đổi 
Deleted Hàng dữ liệu đã bị xoá bởi phương thức Delete 
Detached Hàng dữ liệu đã bị xoá hoặc hàng dữ liệu đã được tạo 
nhưng phương thức Add không được gọi 
7/5/16 Lập trình CSDL với C# 33 
Cập nhật dữ liệu tại nguồn 
q  Sau khi update các bảng trong DataSet, chúng ta muốn cập 
nhật lên data source thì bạn dùng phương thức Update của đối 
tượng DataAdapter, nó liên kết giữa DataSet và data source 
q  Nó xác định các thay đổi của dữ liệu và thực thi câu lệnh SQL 
tương ứng (Insert, Update hoặc Delete) 
7/5/16 Lập trình CSDL với C# 34 
7/5/16	
18	
Cập nhật dữ liệu tại nguồn 
q  Chỉ rõ các tham số cập nhật 
q  Tự động phát sinh update 
35 
SqlCommand cmd = new SqlCommand(); 
cmd.CommandText = "Insert into titles(title_id, title, type) 
values(@t_id,@title,@type)"; 
cmd.Parameters.Add("@t_id",SqlDbType.VarChar,6,"title_id"); 
cmd.Parameters.Add("@title",SqlDbType.VarChar,80,"title"); 
cmd.Parameters.Add("@type",SqlDbType.Char,12,"type"); 
adp.InsertCommand = cmd; 
adp.Update(dsPubs, "titles"); 
 SqlCommandBuilder sqlCommBuild = new SqlCommandBuilder(adp); 
adp.Update(dsPubs,"titles"); 
MessageBox.Show(sqlCommBuild.GetInsertCommand().ToString()); 
7/5/16 Lập trình CSDL với C# 
Demo: Sử dụng DataSet 
36 7/5/16 Lập trình CSDL với C# 
7/5/16	
19	
6. Sử dụng chức năng Wizard 
•  Thiết lập nhanh Data Source cho project 
•  Xây dựng form hiển thị và thao tác dữ liệu 
•  Thông qua thao tác kéo thả từ Data Source 
37 7/5/16 Lập trình CSDL với C# 
Sử dụng chức năng Wizard 
q  Tạo một ứng dụng Windows Application. 
q  Trong menu Data | Add New Data Source 
7/5/16 Lập trình CSDL với C# 38 
7/5/16	
20	
Sử dụng chức năng Wizard 
q  Tạo New Connection 
7/5/16 Lập trình CSDL với C# 39 
Sử dụng chức năng Wizard 
q  Hoàn tất khai báo Data Source 
Chuỗi kết nối 
7/5/16 Lập trình CSDL với C# 40 
7/5/16	
21	
Sử dụng chức năng Wizard 
q  Lưu chuỗi kết nối trong file cấu hình 
Tên của chuỗi kết nối 
7/5/16 Lập trình CSDL với C# 41 
Sử dụng chức năng Wizard 
q  Chọn bảng dữ liệu 
Bảng Sinhvien 
và các field 
Tên của DataSet 
7/5/16 Lập trình CSDL với C# 42 
7/5/16	
22	
Sử dụng chức năng Wizard 
q  Wizard sẽ tạo ứng dụng với Data Source 
Data Sources Windows 
Form in Design View 
7/5/16 Lập trình CSDL với C# 43 
Sử dụng chức năng Wizard 
q  Kéo thả binding control vào Form 
q Trong cửa sổ Data Source 
q Chọn bảng cần sử dụng 
q Thiết lập view là DataGridView hay Details 
q Kích chọn vào dấu mũi tên xuống sau tên bảng 
7/5/16 Lập trình CSDL với C# 44 
7/5/16	
23	
Sử dụng chức năng Wizard 
q  Kéo Table thả vào Form 
q Tự động tạo các binding control cho table 
Detail 
7/5/16 Lập trình CSDL với C# 45 
Sử dụng chức năng Wizard 
q  Bổ sung DataGridView cho Form 
q Thay đổi Table sang DataGrid 
q Kéo Table trong Data Source thả vào Form 
DataGridView 
7/5/16 Lập trình CSDL với C# 46 
7/5/16	
24	
Sử dụng chức năng Wizard 
q  Kết quả ứng dụng 
Chưa viết code! 
7/5/16 Lập trình CSDL với C# 47 
Demo: Sử dụng chức năng Wizard 
48 7/5/16 Lập trình CSDL với C# 
7/5/16	
25	
7. Thiết kế và gắn kết dữ liệu 
q  Thiết kế DataSet 
q  Tùy chỉnh form dữ liệu 
q  Gắn dữ liệu trong WinForms 
q  Gắn dữ liệu trong WebForms 
7/5/16 Lập trình CSDL với C# 49 
Tùy chỉnh cấu hình DataAdapter 
q  Tên kết nối 
q  Kiểu truy vấn 
q Câu lệnh SQL 
q Hoặc Stored Procedure mới 
q Hoặc Stored Procedure đã tồn tại 
q  Các chi tiết lựa chọn câu truy vấn 
50 7/5/16 Lập trình CSDL với C# 
7/5/16	
26	
Gắn dữ liệu trong WinForms 
q  Cách gắn đơn giản 
q  Cách gắn phức tạp 
51 
SqlConnection con = new SqlConnection("Server=TIENPT\\SQL;Database=Northwind;Uid 
= sa; Pwd = admin123"); 
SqlDataAdapter adp = new SqlDataAdapter("Select * from Products", con); 
DataSet ds = new DataSet(); 
adp.Fill(ds,"Products"); 
txtProduct.DataBindings.Add("Text", ds.Tables[0], "ProductName"); 
SqlConnection con = new SqlConnection("Server=TIENPT\\SQL;Database=Northwind;Uid 
= sa; Pwd = admin123"); 
SqlDataAdapter adp = new SqlDataAdapter("Select * from Products", con); 
DataSet ds = new DataSet(); 
adp.Fill(ds,"Products"); 
dgvProducts.DataSource = ds.Tables[0];//DataGridView 
dgvProducts.Refresh(); 
7/5/16 Lập trình CSDL với C# 
Gắn dữ liệu trong WebForms 
q  Gắn dữ liệu chỉ đọc 
52 
protected void Page_Load(object sender, EventArgs e) 
 { 
 SqlConnection conn = new SqlConnection("Server=TIENPT\
\SQL;Database=NorthWind;Uid=sa;Pwd=admin123"); 
 conn.Open(); 
 SqlCommand cmd = new SqlCommand("Select * from Products", conn); 
 SqlDataReader dr = cmd.ExecuteReader(); 
 grvProducts.DataSource = dr; 
 grvProducts.DataBind(); 
 } 
7/5/16 Lập trình CSDL với C# 
7/5/16	
27	
Tài liệu tham khảo 
q  Windows Forms Programming With C# - WIN0095 – Aptech 
Worldwide 
q  https://msdn.microsoft.com/en-us/library/e80y5yhx(v=vs.
110).aspx 
q   
7/5/16 Lập trình CSDL với C# 53 

File đính kèm:

  • pdfbai_giang_tong_quan_ve_net_va_c_lap_trinh_csdl_voi_c_phan_tr.pdf