Giới thiệu cơ bản ADO .NET cho người lập trình C
Trang 1Căn bản ADO.NET cho người lập trình C# Author :
Xcross87 2007
ADO.NET
Không bàn về lịch sử và sự xuất hiện của ADO.NET nhưng bạn phải chú ý : ADO.NET không phải là version mới của ADO (ActiveX Data Object) và ADO.NET cũng không phải là ‘ActiveX Data Object NET’
ADO.NET và các lớp NET cơ bản
System.Data Classes,interfaces,delegates,enumeration trong kiến trúc
ADO.NET System.Data.Common Các lớp chia sẻ NET Framework data providers
System.Data.Design Tự tạo dataset
System.Data.Odbc NET Framework data provider cho ODBC
System.Data.Oledb NET Framework data provider cho OLE DB
System.Data.Sql Cung cấp kết nối SQL Server
System.Data.OracleClient NET Framework data provider cho Oracle
System.Data.SqlClient NET Framework data provider cho SQL Server
System.Data.SqlServerCe NET compact framework data provider cho SQL Server Mobile System.Data.SqlTypes Các kiểu dữ liệu của SQL Server
Microsoft.SqlServer.Server Thành phần cho SQL Server và CLR
Hiểu về kiến trúc ADO.NET
Trang 2ADO.NET có 2 thành phần chính : data providers và datasets
Bạn có thể thấy mối quan hệ của chúng trên hình Chú ý ‘DataView class’ không phải là một thành phần ‘data provider’ DataView được sử dụng phần lớn để gắn (bind) dữ liệu vào winform và webform
Trang 3Căn bản ADO.NET cho người lập trình C# Author :
Xcross87 2007
Hình trên là sự khác nhau khi sử dụng SQL Server và OLE DB data providers để truy cập (access) vào một cơ sở dữ liệu SQL Server
Hình dưới đây minh họa mối tương quan chung giữa Access và SQLServer
Trang 4Sử dụng SQL Server Data Provider
.NET data provider cho SQL Server trong tên miền ‘System.Data.SqlClient’ giúp kết nối trực tiếp với server sử dụng network protocol của nó không phải đi qua các layers khác
Các hàm thường sử dụng :
1 SqlCommand : thực thi SQL queries, câu lệnh hoặc lưu trữ thủ tục
2 SqlConnection : tạo kết nối tới SQL Server
3 SqlDataAdapter : cầu nối trung gian giữa dataset và data source
4 SqlReader : cung cấp một data stream tới kết quả
5 SqlError : lưu trữ thông tin về lỗi và cảnh cáo (warning)
6 SqlException : các ngoại lệ trong trường hợp SQL Server lỗi và cảnh báo
7 SqlParameter : tham sô biên command
8 SqlTransaction : transaction của SQL Server
Thử tạo một Console Application sử dụng SQL Server Data Provider
Mở Visual C# tạo một project mới chọn : Console Application -> OK
Mở file Program.cs và dùng code sau :
Trang 5Căn bản ADO.NET cho người lập trình C# Author :
Xcross87 2007
[code]
using System;
using System.Data;
using System.Data.SqlClient;
namespace Chapter04
{
class SqlServerProvider
{
static void Main(string[] args)
{
// Tạo một connection
string connString = @"
server = \sqlexpress;
integrated security = true;
database = northwind
";
// Tạo query
string sql = @"
SELECT
* FROM employees
";
// Khởi tạo kết nối và DataReader
SqlConnection conn = null;
SqlDataReader reader = null;
try
{
// Mở kết nối conn = new SqlConnection(connString);
conn.Open();
//Thực thi query SqlCommand cmd = new SqlCommand(sql, conn);
reader = cmd.ExecuteReader();
// In kết quả Console.WriteLine(
"Chương trình thể hiện cách sử dụng "
+ "SQL Server Data Provider."
);
Console.WriteLine(
"Querying database {0} with query {1}\n"
, conn.Database , cmd.CommandText );
Console.WriteLine("First Name\tLast Name\n");
Trang 6// Phân tích kết quả while(reader.Read()) { Console.WriteLine(
"{0} | {1}"
, reader["FirstName"].ToString().PadLeft(10) , reader[1].ToString().PadLeft(10)
);
} }
catch (Exception e)
{
Console.WriteLine("Error: " + e);
}
finally
{
//Ngắt kết nối
reader.Close();
conn.Close();
}
}
}
}
[/code]
Trong chuôi kết nối có tham số :
[code] integrated security = true [/code]
Cho biết sử dụng Windows Authentication , vì vậy bất cứ user log vào Windows đều có thể truy cập SQLEXPRESS
Sử dụng OLE DB Data Provider
.NET Framework data provider cho OLE DB nằm trong tên miền ‘System.Data.Oledb’
Các classes hay dùng
1 OledbCommand : thực thi các SQL queries, câu lệnh hoặc lưu trữ thủ tục
2 OledbConnection : tạo kết nối tới một OLE DB source
3 OledbDataAdapter : tạo cầu nối giữa dataset và data source
4 OledbDataReader : cung cấp data stream tới các rows của data source
5 OledbError : Lưu trữ thông tin về lỗi và cảnh báo
6 OledbParameter : tham số command
7 OledbTransaction : transaction của SQL
Một vài OLE DB Providers
Trang 7Căn bản ADO.NET cho người lập trình C# Author :
Xcross87 2007
1 DB2OLEDB : Microsoft OLE DB provider for DB2
2 SQLOLEDB : Microsoft OLE DB provider for SQL Server
3 Microsoft.Jet.OLEDB.4.0 : Microsoft OLE DB provider for Access (sử dụng Jet )
4 MSDAORA : Microsoft OLE DB provider for Oracle
5 MSDASQL : Microsoft OLE DB provider for ODBC
Áp dụng vào bài ở trên ta thay đi một số dòng :
[code]
using System.Data.Oledb;
…
String connString = @”
Provider = sqloledb;
Data source = \SQLEXPRESS;
Integrated security = sspi;
Initial catalog = northwind “;
…
OledbConnection conn = null;
OledbDataReader reader = null;
…
Conn = new OledbConnection(connString);
conn.Open();
OledbCommand cmd = new OleCommand(sql, conn);
[/code]
Sử dụng ODBC Data Provider
Các lớp hay sử dụng :
1 OdbcCommand : thực thi SQL queries, câu lệnh hoặc lưu trữ thủ tục
2 OdbcConnection : kết nối tới ODBC data source
Trang 83 OdbcDataAdapter : câu nối giữa dataset và data source
4 OdbcDataReader : cung cấp data stream tới các hàng tử data source
5 OdbcError : Lưu trữ thông tin về lỗi và cảnh báo
6 OdbcParameter : tham số command
7 OdbcTransaction : transaction của SQL
Để áp dụng cho bài trên cần tạo một ODBC Data Source trước
1 Control Panel -> Admin Tools -> Data Source (ODBC)
2 Tại tab User DSN chọn Add
3 Chọn tiếp Create New Data Source wizard sau đó chọn ‘SQL Server’ trong khung driver
->Finish
4 Điền thông tin Name và chọn Server Ví dụ : Name : NorthwindOdbc; server : \
SQLEXPRESS
5 Mục này để default -> Next
6 Đánh dấu vào ‘Change default database to’ và chọn Northwind -> Next
7 Đánh dấu vào ‘Perform translation to character data’ -> Finish
Sau đó OK , chọn Test để kiểm tra Connection nếu sai thì sửa lại thông tin kết nối
Sau đó bảng ODBC Data Source Admin ta thấy có thêm một source
Name : NorthwindOdbc - Driver : SQL Server
Áp dụng vào bài trên, thay đổi code ban đầu một số dòng sau
[code]
using System.Data.Odbc;
…
String connString = @”dsn=northwindodbc”;
…
OdbcConnection conn = null;
OdbcDataReader reader = null;
…
conn = new OdbcConnection(connString);
conn.Open();
OdbcCommand cmd = new OdbcCommand(sql, conn);
Trang 9Căn bản ADO.NET cho người lập trình C# Author :
Xcross87 2007
[/code]
Hix…viết xong thấy mệt quá
Chỉ biết mấy cái đó thôi biết gì viết vậy thông cảm heng
Còn cái ADO.NET API đang nghiên cứu thêm
Kết thúc ADO.NET siêu cơ bản