• Home »
  • Csharp »
  • Sử dụng ADO.NET kết nối tới cơ sở dữ liệu Oracle

Sử dụng ADO.NET kết nối tới cơ sở dữ liệu Oracle


      Trong bài này, chúng ta sẽ tìm hiểu cách sử dụng Sử dụng ADO.NET kết nối tới cơ sở dữ liệu Oracle thông qua sử dụng .NET Framework Data Provider dành cho Oracle nằm trong không gian tên System.Data.OracleClient được cung cấp sẵn trong thư viện .Net Framework của Microsoft bằng ngôn ngữ lập trình C#.

Trong bài này, chúng ta sẽ tìm hiểu cách sử dụng Sử dụng ADO.NET kết nối tới cơ sở dữ liệu Oracle thông qua sử dụng .NET Framework Data Provider dành cho Oracle nằm trong không gian tên System.Data.OracleClient được cung cấp sẵn trong thư viện .Net Framework của Microsoft bằng ngôn ngữ lập trình C#.

      Đề thử nghiệm bài viết này chúng ta cần một cơ sở dữ liệu (database ) oracle đã được cài đặt sẵn . Hãy xem xét ví dụ dưới đây sử dụng ngôn ngữ C# để truy cập tới 1 bảng khách hàng CUSTOMERDEMO được tạo trong 1 Schema nào đó của Oracle như sau:

 Câu lệnh tạo bảng CUSTOMERDEMO trong Oracle

       Các bạn dùng SQL command line hoặc mở Công cụ như SQL Navigator, Oralce SQL Developer để tạo bảng  CUSTOMERDEMO 

        Đoạn code (SYSdate – round( dbms_random.value(18,30),0) *365) dùng để tạo ngày sinh ngẫu nhiên trong khoảng 18 tới 30 tuổi Oracle.  Trong đó hàm SYSDATE  lấy ngày giờ hệ thống, hàm Round làm tròn số và hàm dbms_random.value(18,30) dùng để sinh số ngẫu nhiên từ 18 tới 30.

using Ado.net with Oracle

       Để truy cập tới bảng CUSTOMERDEMO khi sử dụng .NET Framework Data Provider dành cho Oracle trong ADO.NET chúng ta cần tham chiếu tới thư viện System.Data.OracleClient được cung cấp sẵn trong thư viện .Net Framework. Chúng ta tạo một Project Window Console trong Visual Studio để thực hiện việc sử dụng ADO.NET kết nối tới cơ sở dữ liệu Oracle, add tham chiếu tới không gian tên System.Data.OracleClient, nếu không thấy thư viện này hãy kiểm tra lại phiên bản .Net Framework.

Namespace System.Data.OracleClient for connecting to Oracle

         Chú ý: Hiện nay có rất nhiều cách để kết nối tới cơ sở dữ liệu oracle khi sử dụng ngôn ngữ lập trình  C#. Cách kết nối System.Data.OracleClient do Microsoft phát triển thường chỉ dành cho project thử nghiệm hoặc các công cụ tiện ích. Khi thực hiện các dự án sản phẩm lớn bạn không nên sử dụng bởi từ nhiều năm trước Microsoft cũng đã không hỗ trợ thêm và khuyến cáo không sử dụng cho dự án phát triển.  Khi sử dụng bạn có thể nhận được thông tin khuyến cáo như sau “The types in System.Data.OracleClient are deprecated. The types remain supported in the current version of.NET Framework but will be removed in a future release. Microsoft recommends that you use a third-party Oracle provider.”  và khi code sử dụng các đối tượng trong Visual Studio bạn nhé nhận được thông báo  ‘System.Data.OracleClient.OracleCollection is obsolete’ : “OracleConnection has been deprecated.  http://go.microsoft.com/fwlink/?LinkID=144260

1.  Nhận kết quả truy vấn bảng bằng cách sử dụng đối tượng OracleDataAdapter

      Dưới đây là code nhận kết quả trả về khi truy vấn bảng  CUSTOMERDEMO bằng việc nhận kết quả trả về bằng cách sử dụng đối tượng OracleDataAdapter trong ADO.NET để lẫy dữ liệu trong cơ sở dữ liệu và trả về DataTable trong bộ nhớ như sau :

Code

Result

      Sử dụng hàm hiện thi kết quả với dữ liệu đầu vào là một DataTable

       Chúng ta nhận được kết quả như sau :

using Ado.net with OracleDataAdapter


2.  Nhận kết quả truy vấn bảng bằng cách sử dụng đối tương OracleDataReader

Dưới đây là code nhận kết quả trả về khi truy vấn bảng  CUSTOMERDEMO bằng việc  nhận kết quả trả về bằng cách sử dụng đối tượng OracleDataReader trong provider System.Data.OracleClient của ADO.NET chỉ đọc, chỉ chuyển tiếp như sau :

Code

Result
Để nhận kết quả từ bảng CUSTOMERDEMO từ OracleDataReader ta cần khai báo thêm 1 lớp MitBeoCustomerClass trong ngôn ngữ C# mà có các thuộc tính của nó tương ứng với các cột dữ liệu trong bảng CUSTOMERDEMO như sau :

     Sử dụng hàm hiển thị kết quả với dữ liệu đầu vào là một danh sách các lớp MitBeoCustomerClass

      Chúng ta nhận được kết quả như sau :

using Ado.net with OracleDataReader


3.  Sử dụng OracleDataAdapter hay OracleDataReader

      Nếu bạn cần phát triển các tính năng chỉ cần đọc dữ liệu từ bảng, bạn nên dùng OracleDataReader,  vì khi sử dụng OracleDataReader  trong việc xử lý chỉ đọc dữ liệu sẽ khiến cho tốc độ xử lý  nhanh hơn rất nhiều với OracleDataAdapter.  Dưới đây là đoạn code sử dụng lớp Stopwatch để so sánh thời gian chương trình thực thi của OracleDataAdapter và OracleDataReader trong ADO.NET để minh họa cho nhận xét trên:

Code

Result

using Ado.net with OracleDataAdapter vs OracleDataReader

Các bạn có thể Download code : Tại đây




[Ngôn ngữ lập trình C#]


Related Post

Phản hồi

Phản hồi