SlideShare una empresa de Scribd logo
1 de 8
Că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

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.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




                                          Page 1 of 8
Căn bản ADO.NET cho người lập trình C#                          Author : Xcross87   2007


       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




                                         Page 2 of 8
Căn bản ADO.NET cho người lập trình C#                            Author : Xcross87   2007




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 :


                                          Page 3 of 8
Că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 NametLast Namen");
              // Phân tích kết quả


                                         Page 4 of 8
Căn bản ADO.NET cho người lập trình C#                             Author : Xcross87   2007


                 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

    1. DB2OLEDB : Microsoft OLE DB provider for DB2

                                              Page 5 of 8
Căn bản ADO.NET cho người lập trình C#                            Author : Xcross87     2007


     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
     3.   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

                                              Page 6 of 8
Căn bản ADO.NET cho người lập trình C#                             Author : Xcross87   2007


    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);

[/code]

Hix…viết xong thấy mệt quá.

                                           Page 7 of 8
Căn bản ADO.NET cho người lập trình C#                      Author : Xcross87   2007


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.




                                           Page 8 of 8

Más contenido relacionado

La actualidad más candente

Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaANHMATTROI
 
Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databindingtruong le hung
 
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTBài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTMasterCode.vn
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...MasterCode.vn
 
Net06 asp.net applications & state management
Net06 asp.net applications & state managementNet06 asp.net applications & state management
Net06 asp.net applications & state managementhoangnguyentien
 
LINQ TO XML
LINQ TO XMLLINQ TO XML
LINQ TO XMLbiendltb
 
Lap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi JavaLap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi JavaANHMATTROI
 
Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet Nguyễn Ngọc Hoàng
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaBrand Xanh
 
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPT
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPTBài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPT
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPTMasterCode.vn
 
Android Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML ParsingAndroid Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML ParsingPhuoc Nguyen
 
Bai3 basic servlets_956
Bai3 basic servlets_956Bai3 basic servlets_956
Bai3 basic servlets_956Ham Chơi
 
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...zzsunzz
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nayledoanduc
 
Bai1 gioi thieu_servlet_va_jsp_8952
Bai1 gioi thieu_servlet_va_jsp_8952Bai1 gioi thieu_servlet_va_jsp_8952
Bai1 gioi thieu_servlet_va_jsp_8952Ham Chơi
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#An Nguyen
 
Bai4 basic jsp_4474
Bai4 basic jsp_4474Bai4 basic jsp_4474
Bai4 basic jsp_4474Ham Chơi
 

La actualidad más candente (20)

Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
 
Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databinding
 
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTBài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
 
Net06 asp.net applications & state management
Net06 asp.net applications & state managementNet06 asp.net applications & state management
Net06 asp.net applications & state management
 
LINQ TO XML
LINQ TO XMLLINQ TO XML
LINQ TO XML
 
Data provider
Data providerData provider
Data provider
 
Lap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi JavaLap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi Java
 
LinQ to XML
LinQ to XMLLinQ to XML
LinQ to XML
 
Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với java
 
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPT
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPTBài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPT
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPT
 
Android Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML ParsingAndroid Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML Parsing
 
Bai3 basic servlets_956
Bai3 basic servlets_956Bai3 basic servlets_956
Bai3 basic servlets_956
 
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nay
 
Bai1 gioi thieu_servlet_va_jsp_8952
Bai1 gioi thieu_servlet_va_jsp_8952Bai1 gioi thieu_servlet_va_jsp_8952
Bai1 gioi thieu_servlet_va_jsp_8952
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#
 
Ung dung web chuong 6
Ung dung web  chuong 6Ung dung web  chuong 6
Ung dung web chuong 6
 
Bai4 basic jsp_4474
Bai4 basic jsp_4474Bai4 basic jsp_4474
Bai4 basic jsp_4474
 

Similar a 2.gioi thieu co ban ado.net cho nguoi lap trinh c#

6.adapterset
6.adapterset6.adapterset
6.adaptersetDao Uit
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoMasterCode.vn
 
01 chuong 1 - gioi thieu ado.net va ket noi den csdl
01   chuong 1 - gioi thieu ado.net va ket noi den csdl01   chuong 1 - gioi thieu ado.net va ket noi den csdl
01 chuong 1 - gioi thieu ado.net va ket noi den csdltruong le hung
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...MasterCode.vn
 
01 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp0101 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp01huynhtrong774129
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVCMasterCode.vn
 
Lập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnLập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnSon Nguyen
 
7.databinding
7.databinding7.databinding
7.databindingDao Uit
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oraclehoangdinhhanh88
 

Similar a 2.gioi thieu co ban ado.net cho nguoi lap trinh c# (20)

Cach su dung data reader
Cach su dung data readerCach su dung data reader
Cach su dung data reader
 
6.adapterset
6.adapterset6.adapterset
6.adapterset
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 
LinQ
LinQLinQ
LinQ
 
Aspnet 3.5 _02
Aspnet 3.5 _02Aspnet 3.5 _02
Aspnet 3.5 _02
 
01 chuong 1 - gioi thieu ado.net va ket noi den csdl
01   chuong 1 - gioi thieu ado.net va ket noi den csdl01   chuong 1 - gioi thieu ado.net va ket noi den csdl
01 chuong 1 - gioi thieu ado.net va ket noi den csdl
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
 
01 tong-quan-ado
01 tong-quan-ado01 tong-quan-ado
01 tong-quan-ado
 
C# co ban 9
C# co ban 9C# co ban 9
C# co ban 9
 
ado.net
ado.netado.net
ado.net
 
01 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp0101 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp01
 
Dsd05 02a-xml-rpca
Dsd05 02a-xml-rpcaDsd05 02a-xml-rpca
Dsd05 02a-xml-rpca
 
Asp control
Asp controlAsp control
Asp control
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
access
accessaccess
access
 
Lập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnLập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biến
 
Chapter9
Chapter9Chapter9
Chapter9
 
Chapter9
Chapter9Chapter9
Chapter9
 
7.databinding
7.databinding7.databinding
7.databinding
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle
 

2.gioi thieu co ban ado.net cho nguoi lap trinh c#

  • 1. Că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 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.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 Page 1 of 8
  • 2. Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007 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 Page 2 of 8
  • 3. Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007 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 : Page 3 of 8
  • 4. Că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 NametLast Namen"); // Phân tích kết quả Page 4 of 8
  • 5. Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007 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 1. DB2OLEDB : Microsoft OLE DB provider for DB2 Page 5 of 8
  • 6. Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007 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 3. 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 Page 6 of 8
  • 7. Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007 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); [/code] Hix…viết xong thấy mệt quá. Page 7 of 8
  • 8. Căn bản ADO.NET cho người lập trình C# Author : Xcross87 2007 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. Page 8 of 8