Tìm kiếm PhanVien.Com Web
Download PhanVien.Com Toolbar
Danh mục thông tin

Truy cập cơ sở dữ liệu qua C# ADO.NET

Trong bài viết này chúng tôi sẽ giới thiệu cho các bạn cách truy cập cơ sở dữ liệu qua C# ADO.NET.

Truy cập cơ sở dữ liệu qua C# ADO.NET


Cơ sở dữ liệu ngôn ngữ  hướng đối tượng

Trước khi các máy tính  mini  và các PC xuất hiện, thế giới  CNTT đơn giản hơn rất nhiều. Thời gian  đó người ta cho rằng chỉ có các tổ chức rất lớn mới cần đến công nghệ  máy tính. Tuy nhiên một vài năm đây, tất cả chúng ta đều có thể sở hữu những chiếc điện thoại  di động với sức mạnh tính toán đủ mạnh để có thể xử lý dữ liệu  cho một quá trình bắn tên lửa lên mặt trăng. Và cho đến ngày nay, sức mạnh tính toán, phần mềm, khả năng lưu trữ  và băng thông, tất cả đều là mặt hàng có thể trao đổi. Mặc dù vậy vẫn có một điều khá đáng quý trong lĩnh vực máy tính. Vấn đề ở đây là, sự thiếu hụt một nền tảng phổ dụng cũng là một cách để thúc đẩy sự phát minh và sáng tạo trong lĩnh vực rộng hơn. Dưới dạng các chuẩn phần mềm, chúng ta có một danh sách những lựa chọn ấn tượng, hãy xem sự da dạng của mã nguồn mở và các nền tảng hết sức phổ biến như Linux  và iPhone. Nếu chỉ có một hệ điều hành  và một ngôn ngữ  lập trình chính thì cũng sẽ có ít sự cạnh tranh – điều đó cũng thường đi đôi với việc có ít sự lựa chọn.

Đối với thế giới  các cơ sở dữ liệu  quan hệ cũng có một loạt các sản phẩm  cạnh tranh. Sự truy cập  bằng chương trình  vào các sản phẩm  cơ sở dữ liệu  này cũng hiện diện nhiều sự lựa chọn —Java Persistence API  (JPA)/Hibernate, C++, C#, Java,… Trong bài viết này, chúng tôi  sẽ khảo sát công nghệ  C# và ADO.NET trong một trường hợp đặc biệt, mục đích nhằm là để xem các công nghệ  này có thể cung cấp những gì cho các nhà lập trình. Tuy nhiên nếu bạn chưa có nhiều kiến thức về cơ sở dữ liệu, cũng không nên quá lo lắng chúng tôi  sẽ giới thiệu  từ những vấn đề cơ bản nhất.

Lưu ý: Mã nguồn cho bài viết này hoàn toàn có thể download  tại đây với tư cách một giải pháp C# cho Microsoft  Visual C# 2008 Express Edition. Nếu bạn muốn tự chạy mã nguồn này, chỉ cần giải nén các file vào một thư mục, chẳng hạn như C:\dbcode. Sau đó mở file giải pháp mang tên DBConsoleApplication.sln trong Microsoft  Visual C# 2008 Express Edition. Thao tác này sẽ tự động xây dựng một mã nguồn và tạo các thực thi cần thiết.

Sau đây chúng ta sẽ can thiệp và triển khai một sản phẩm  cơ sở dữ liệu.

Cài đặt SQL Server

Việc cài đặt và chạy chương trình  có thể mất khánhiều thời gian, do vậy mà chúng tôi  không muốn tốn nhiều thời gian  củabạn vào công việc  này. Với mục đích tập trung vào việc sử dụng một sảnphẩm chuyên nghiệp, chính vì vậy bài viết này chúng tôi  đã chọn sử dụngSQL Server  2005 Express Edition. Bạn có thể sử dụng phiên bản  2008 nếuthích – các ví dụ trong bài viết này sẽ làm việc  trên cả nền tảng 2008.

Chúng ta hãy bắt đầu bằng cách download  và cài đặt ba hạng mục dưới đây từ website  của Microsoft:

Khi cài đặt SQL Server  2005 Express Edition, hãy sửdụng các thiết lập mặc định; các thiết lập này sẽ tự động taọ mộtinstance cho database engine.

Đối với SQL Server  Management  Studio Express, khôngyêu cầu cấu hình đặc biệt nào – chỉ cần bạn chấp nhận các cấu hình mặcđịnh. Khi sản phẩm  được cài đặt, nó sẽ tự động phát hiện instance đãđược tạo bởi SQL Server  2005 Express Edition.

Các ví dụ code  sẽ được xây dựng  và được test bằng Visual C# 2008 Express Edition.

Tất cả các công đoạn trên thoạt nghe có vẻ phức tạp,tuy nhiên thực tế lại không phải như vậy. Chúng ta hãy cài đặt các côngcụ mới trên và chạy chúng.

Khởi chạy SQL Server  Management  Studio Express

Sản phẩm SQL Server  Management  Studio Express chophép bạn quản lý các instance của SQL Server. Nghĩa là bạn có thể tươngtác với cơ sở dữ liệu  được cấu hình trên SQL Server  instance đã cho.Hãy chạy SQL Server  Management  Studio Express từ menu Startcủa Windows. Biểu tượng chương trình  thực cho SQL Server  ManagementStudio Express được cài đặt như một mục menu con trong nhóm các chươngtrình của Microsoft  SQL Server  2005: Start > All Programs > Microsoft  SQL Server  2005.

Khi khởi chạy ứng dụng SQL Server  Management  StudioExpress, một kết nối sẽ được tạo tự động cho instance của SQL Server  đãcài đặt, xem thể hiện trong hình 1. Tên máy chủ  trong hình 1 lấy từ têncủa máy host (trong trường hợp này, LAPTOP1) và instance của SQL Server  (SQLEXPRESS trong ví dụ này).


Hình 1: Kết nối đến một instance của SQL Server

Khi kết thúc, kích nút Connect trong hộp thoại. Sau một phút, màn hình  SQL Server  Management  Studio Express chính sẽ xuất hiện (xem trong hình 2).


Hình 2: Kết nối thành công  đến SQL Server  instance

Vậy ứng dụng SQL Server  Management  Studio Express chính xác  là gì? Trong hình 2, hãy để ý mục Object Explorerđược hiển thị ở phía trên trong phần panel  bên trái – chương trình  nàygiống như kiểu ứng dụng thám hiểm (explorer) để cho phép bạn quan sátcác instance của database engine. Cũng như trong Windows, bạn có thểxem một số lượng  đáng kể các thông tin  có liên quan đến tất cả cácinstance của cơ sở dữ liệu  ở đây. Sau đây chúng ta hãy tìm hiểu mộtchút về cửa sổ Object Explorer.

Trong phần panel  bên trái, kích vào dấu cộng phía bên trái của biểu tượng thư mục Databases. Hành động  hãy sẽ hiển thị tất cả các cơ sở dữ liệu  được host bằng instance của SQL Server  đã cho (xem trong hình 3).


Hình 3: Cơ sở dữ liệu  cư trú trên SQLEXPRESS.

Thứ đầu tiên cần lưu ý về các cơ sở dữ liệu  tronghình 3 là tất cả chúng đều liên quan đến SQLEXPRESS; hay nói cách khác,không có cơ sở dữ liệu  ứng dụng. Chúng ta hãy cứu chữa tình huống nàybằng cách cài đặt một cơ sở dữ liệu  mới.

Microsoft có cung cấp nhiều cơ sở dữ liệu  mẫu choviệc sử dụng các sản phẩm  SQL Server. Một trong số đó mà chúng tôi  sửdụng cho ví dụ này có tên pubs. Bạn có thể download  cơ sở dữ liệu  pubs tại đây và cài đặt nó để sử dụng cho các trải nghiệm của riêng mình, hay có thể sử dụng cơ sở dữ liệu  của riêng bạn.

Khi chạy file cài đặt sẽ triển khai cơ sở dữ liệupubs, tuy nhiên bạn phải đính kèm nó trong SQL Server  Management  StudioExpress.  Bước này nghe có vẻ khó khăn, tuy nhiên việc đính kèm nàythực sự rất dễ dàng. Bạn chỉ cần kích nút File và duyệt đến fileinstpubs.sql (xem trong hình 4). File của chúng tôi  được định vị theođường dẫn dưới đây:

C:\SQL Server  2000 Sample Databases\instpubs.sql

Chọn file và kích Open. Khi file kịch bản được mở, kích nút Execute trong toolbar (xem trong hình 5).


Hình 4: Chạy kịch bản cơ sở dữ liệu  pubs


Hình 5: Trước khi file instpubs.sql được thực thi

Nếu tất cả đều diễn ra tốt đẹp với cài đặt của bạn,một cơ sở dữ liệu  mới có tên gọi pubs sẽ xuất hiện trong danh sách bêntrái panel, xem thể hiện trong hình 6.

Lưu ý: Để xem đầu ra trong hình 6, bạn có thể kích vào database instance (LAPTOP1\SQLEXPRESS) trong phần panel  bên trái của cửa sổ Object Explorer, sau đó kích nút Refresh.


Hình 6: Sau khi đính kèm vào cơ sở dữ liệu  pubs

Nếu mở rộng cơ sở dữ liệu  pubs bằng cách kích vào dấu cộng, bạn sẽ thấy các bảng thành phần, xem thể hiện trong hình 7.


Hình 7: Sau khi cài đặt thành công  cơ sở dữ liệu  pubs

Cơ sở dữ liệu  trong ví dụ này đã hoàn toàn sẵn sàngcho việc truy cập  thông qua C#. Đó là tất cả những gì chúng tôi  sẽ thựchiện với SQL Server  Management  Studio Express trong bài viết này. Nhưnhững hình thể hiện, sản phẩm  này cung cấp một môi trường  khá đẹp đểbạn có thể quản trị  các cơ sở dữ liệu  SQL Server  của mình. Giờ đâychúng ta sẽ đi xem cách truy cập  vào các cơ sở dữ liệu  đó bằng VisualC# 2008 Express Edition như thế nào.

Chạy Visual C# 2008 Express Edition

Bạn có thể chạy Visual C# 2008 Express Edition từ  menu Start của Windows. Khi IDE mở, chọn Tools > Connect to Database từ menu. Thao tác này của bạn sẽ mở ra hộp thoại như thể hiện trong hình 8.

Lưu ý: Lần đầu tiên khi chạy lệnh này, hộp thoại sẽ được gọi là Choose Data Source. Khi bạn đã kết nối với nguồn dữ liệu, hộp thoại sẽ trở thành Change Data Source, xem thể hiện trong hình 8.


Hình 8: Kết nối đến nguồn dữ liệu

Chọn nguồn dữ liệu, nếu cần, kích OK. Trong hộp thoại tiếp theo (Add Connection), nhập vào đường dẫn đến file pubs.mdf. Trên hệ thống  chúng tôi, đường dẫn mặc định như thể hiện bên dưới:

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data

Chọn file, kích Open, sau đó kích OK. Nguồn dữ liệu  pubs sẽ xuất hiện, xem thể hiện trong hinh 9.


Hình 9: Truy cập  thành công  vào cơ sở dữ liệu  từ bên trong Visual C# 2008 Express Edition

Lúc này bạn có thể tương tác với cơ sở dữ liệu  pubsgiống như những gì bạn có thể thực hiện với SQL Server  ManagementStudio Express.

Tiếp đến, chúng ta sẽ truy cập  vào cơ sở dữ liệu  bằng mã C#.

Truy cập cơ sở dữ liệu với code  C#

Trước khi chạy mã C#, bạn phải hủy kết nối với cơ sởdữ liệu pubs. Để thực hiện điều này trong Visual C# 2008 ExpressEdition, kích chuột phải vào cơ sở dữ liệu  pubs và chọn Detach Database. Nếu không thực hiện thao tác này, khi chạy mã C# bạn có thể nhận thông báo  lỗi như thể hiện trong hình 10.


Hình 10: Một vấn đề chung – quá nhiều kết nối

Giờ đây chúng ta đã remove tất cả các kết nối với cơsở dữ liệu  pubs, hãy chạy mã C# mà bạn đã download  được để nhận kết quảđầu ra như thể hiện trong hình 11.


Hình 11: Truy hồi dữ liệu  thành công

Hình 11 thể hiện mã truy cập  cơ sở dữ liệu  trọn vẹncủa nó. Trông có vẻ như rất phức tạp nhưng thực sự không phải như vậy.Trong một nutshell, một số tham số được đọc từ một file có tênApp.config sau đó một kết nối sẽ được thực hiện đến cơ sở dữ liệu. Dữliệu yêu cầu sẽ được truy lại từ cơ sở dữ liệu  và được hiển thị mộthàng.

Đoạn mã 1 - Code  truy cập  cơ sở dữ liệu 

// Get metadata from App.config filestring dbProvider =  ConfigurationManager.AppSettings["dbProvider"];string connectionString =  ConfigurationManager.ConnectionStrings["SqlConnStringPubs"].ConnectionString;// Create a factory providerDbProviderFactory dbProviderFactory =DbProviderFactories.GetFactory(dbProvider); // Create a connection  objectDbConnection dbConnection = dbProviderFactory.CreateConnection();Console.WriteLine("Connection object: {0}",dbConnection.GetType().FullName); dbConnection.ConnectionString = connectionString;dbConnection.Open();Console.WriteLine("Connection string: {0}", dbConnection.ToString()); // Create a command object.DbCommand cmd = dbProviderFactory.CreateCommand();Console.WriteLine("Command object: {0}", cmd.GetType().FullName);cmd.Connection = dbConnection;cmd.CommandText = "Select * From Authors"; // Create a data reader.DbDataReader dbDataReader =  cmd.ExecuteReader(CommandBehavior.CloseConnection);Console.WriteLine("Data reader object: {0}",dbDataReader.GetType().FullName); Console.WriteLine("Command " + cmd.CommandText); while (dbDataReader.Read())    Console.WriteLine("Row data: {0}, {1}",dbDataReader["au_lname"], dbDataReader["au_fname"]);dbDataReader.Close();

Lưu ý rằng ở cuối đoạn mã 1, đoạn mã đã tạo các thamchiếu đến các cột cơ sở dữ liệu["au_lname"] và ["au_fname"]. Để hiểuđược lý do  tại sao lại có điều đó, bạn hãy quan sát các cột trong bảngauthors được liệt kê bên trái panel  của hình 12. Mã C# đang hiển thị làmột tập nhỏ dữ liệu  từ bảng này.


Hình 12: Các cột trong bảng authors

Đoạn mã 2 thể hiện nội dung  của file cấu hình App.config.

Đoạn mã 2 - File metadata ngoài

<?xml version="1.0" encoding="utf-8" ?><configuration>    <appSettings>        <add key="dbProvider" value="System.Data.SqlClient" />    </appSettings>    <connectionStrings>        <add name ="SqlConnStringPubs"         connectionString ="Server=.\SQLExpress;AttachDbFilename=C:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\Data\pubs.mdf;Database=dname;Trusted_Connection=Yes;"/>    </connectionStrings></configuration>

Các thiết lập trong đoạn mã 2 thể hiện các chi tiếtnhà cung cấp cơ sở dữ liệu thông tin  kết nối được yêu cầu để truycập SQLEXPRESS instance. Lưu ý các phần có từ add. Các  mục dữ liệu  nàyđược tham chiếu trực tiếp  trong mã C# trong quá trình chạy, xem lạitrong đoạn mã 1.
Đến đây quá trình chúng ta đã hoàn tất một tua về ADO.NET.

Kết luận

Microsoft cung cấp khá nhiều công cụ phong phú choviệc phát triển cơ sở dữ liệu  trung tâm  trên nền tảng .NET. SQL Server2005 Express Edition được thiết kế  cho việc quản lý các databaseinstance ở mức khá cao. Còn nếu muốn can thiệp vào các công việc  bêntrong của một cơ sở dữ liệu  nào đó, bạn có thể sử dụng ứng dụng SQLServer Management  Studio Express và Visual C# 2008 Express Edition IDEvới các tính năng bổ sung. Bằng cách sử dụng sự kết hợp các công cụnày, bạn có thể quản trị  và phát triển một cách hiệu quả các giải phápcơ sở dữ liệu  C# tập trung.

Với các công cụ cơ sở dữ liệu  hữu dụng này, cơ sở dữliệu mẫu có thể được download  một cách dễ dàng. Bạn có thể sử dụng cáccơ sở dữ liệu  này để phát triển cơ sở dữ liệu  của mình một cách nhanhchóng. Bên cạnh đó, sử dụng mã C# để truy cập  một cơ sở dữ liệu  ADO.NETkhá đơn giản. Chỉ cần một file C# và một file cấu hình, còn lại nhiềumã ẩn bên dưới background rất phức tạp mà bạn không cần biết đến. Chínhsự trừu tượng của các chi tiết kỹ thuật  về kết nối cơ sở dữ liệu  lànhững gì làm cho ADO.NET mạnh đến vậy.

Trong bài viết này, chúng tôi  đã tập trung hầu hếtvào việc thiết lập các công cụ này cho đúng cách. Mã truy cập  cơ sở dữliệu cài đặt rất đơn giản; mọi thứ chỉ phức tạp hơn khi bạn muốn thayđổi cơ sở dữ liệu. Tuy nhiên sự đơn giản hóa của ADO.NET sẽ giúp đỡ bạnrất nhiều trong lĩnh vực này.

Tìm bài viết khác
Theo QUANTRIMANG.COM
Updated: 07/08/2009 | Views: 207 | Comments: 0

Comments - Truy cập cơ sở dữ liệu qua C# ADO.NET

Hiện tại chưa có bình luận nào về bài viết Truy cập cơ sở dữ liệu qua C# ADO.NET!

Bạn có ý kiến gì về bài viết Truy cập cơ sở dữ liệu qua C# ADO.NET này? Hãy gởi suy nghĩ, bình luận, đánh giá, lời khuyên ... của bạn về bài viết Truy cập cơ sở dữ liệu qua C# ADO.NET bạn tại đây.

Other articles

Similar Articles Truy cập cơ sở dữ liệu qua C# ADO.NET

Older than Truy cập cơ sở dữ liệu qua C# ADO.NET in Cơ Sở Dữ Liệu

Newer than Truy cập cơ sở dữ liệu qua C# ADO.NET in Cơ Sở Dữ Liệu

Recently Published - Cơ Sở Dữ Liệu
Day ao thuat
Latest Comments in Cơ Sở Dữ Liệu
By TuấnBQ. Bài viết này rất hay, và em cũng hy vọng sẽ có các bài tiếp theo về .....
Most Comments in Cơ Sở Dữ Liệu
Monthly Most Views - Cơ Sở Dữ Liệu
  English Tiếng Việt 
Bạn đang xem bài viết Truy cập cơ sở dữ liệu qua C# ADO.NET được gởi trong chủ đề Cơ Sở Dữ Liệu - Công Nghệ Thông Tin. Bài viết Truy cập cơ sở dữ liệu qua C# ADO.NET này được lưu trên Server thành hai bản: Truy cập cơ sở dữ liệu qua C# ADO.NET có dấuTruy cập cơ sở dữ liệu qua C# ADO.NET không dấu. Bạn có thể gởi ý kiến bình luận, đóng góp về bài viết Truy cập cơ sở dữ liệu qua C# ADO.NET này tại phần gởi bình luận ở cuối nội dung bài viết. Lưu ý nội dung của bài viết Truy cập cơ sở dữ liệu qua C# ADO.NET này có thể không còn phù hợp với thời điểm hiện tại. Nếu phát hiện điều này, xin bạn báo cho BQT biết để gỡ bỏ nó.
Home Page | Privacy | Contact | Friend Links | Search | Sitemap | Up
Copyright © 2008 PhanVien.Com . All rights reserved.