
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
Namespace Chú thích
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.OracleClien
t
.NET Framework data provider cho Oracle
System.Data.SqlClient .NET Framework data provider cho SQL Server
System.Data.SqlServerC
e
.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.Serv
er
Thành phần cho SQL Server và CLR
Hiểu về kiến trúc ADO.NET

ADO.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.
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
Sử 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 :
[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");
// 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

