Bài giảng lập trình CSDL với C

74 470 0
Bài giảng lập trình CSDL với C

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TỔNG QUAN VỀ LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI ADO.NET 1.1. Giới thiệu Một Cơ sở dữ liệu là một tập hợp có tổ chức của thông tin được phân chia vào trong những bảng. Mỗi bảng lại được chia thành những hàng và những cột ; những cột này lưu trữ những thông tin thực tế. Bạn truy nhập một cơ sở dữ liệu sử dụng ngôn ngữ truy vấn có cấu trúc (SQL), là một ngôn ngữ tiêu chuẩn được hỗ trợ bởi đa số phần mềm cơ sở dữ liệu bao gồm SQL Server, Access, và Oracle. Trong chương này, bạn sẽ thấy một chương trình C kết nối tới một cơ sở dữ liệu máy chủ phục vụ SQL, truy xuất và hiển thị nội dung cất giữ trong những cột của một hàng từ một bảng, rồi ngắt kết nối với cơ sở dữ liệu.Bạn cũng sẽ thấy những chương trình kết nối tới những cơ sở dữ liệu Access và Oracle . Bạn cũng sẽ học về công cụ phát triển nhanh ứng dụng của Microsoft (RAD) , Visual Studio .NET (VS .NET).VS .NET cho phép bạn phát triển, chạy, và gỡ lỗi những chương trình trong một môi trường phát triển tích hợp. Môi trường này sử dụng tất cả những đặc tính lớn của Windows, như con chuột và những thực đơn nhanh, và tăng năng suất của bạn như một lập trình viên. Trong những mục cuối cùng của chương này, bạn sẽ thấy cách sử dụng tài liệu Microsoft rộng lớn đi cùng với công cụ phát triển phần mềm .NET(SDK). và VS .NET. Bạn sẽ tìm thấy tài liệu này vô giá khi bạn trở nên một chuyên gia với ADO.NET và C. Bạn cũng sẽ học cách sử dụng tài liệu SQL Server như thế nào. Những đặc trưng trong chương này: ■ Phần mềm cần thiết ■ Phát triển chương trình ADO.NET đầu tiên của bạn. ■ Sự kết nối tới những cơ sở dữ liệu Access và Oracle ■ Giới thiệu về Visual Studio .NET ■ Sử dụng tài liệu .NET. ■ Sử dụng tài liệu SQL Server 1.2. Chương trình ADO.Net đầu tiên Trong mục này bạn sẽ bắt tay vào việc lập trình ADO.NET và sẽ thấy một chương trình C thực hiện những tác vụ sau đây: 1. Kết nối tới cơ sở dữ liệu Northwind của máy chủ phục vụ SQL 2. Truy xuất một hàng từ bảng những khách hàng (Customers) 3. Trình bày những cột của hàng

Khoa Công nghệ Thông tin Lập trình CSDL Chương TỔNG QUAN VỀ LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI ADO.NET 1.1 Giới thiệu Một Cơ sở liệu tập hợp có tổ chức thông tin phân chia vào bảng Mỗi bảng lại chia thành hàng cột ; cột lưu trữ thông tin thực tế Bạn truy nhập sở liệu sử dụng ngôn ngữ truy vấn có cấu trúc (SQL), ngôn ngữ tiêu chuẩn hỗ trợ đa số phần mềm sở liệu bao gồm SQL Server, Access, Oracle Trong chương này, bạn thấy chương trình C# kết nối tới sở liệu máy chủ phục vụ SQL, truy xuất hiển thị nội dung cất giữ cột hàng từ bảng, ngắt kết nối với sở liệu.Bạn thấy chương trình kết nối tới sở liệu Access Oracle Bạn học công cụ phát triển nhanh ứng dụng Microsoft (RAD) , Visual Studio NET (VS NET).VS NET cho phép bạn phát triển, chạy, gỡ lỗi chương trình môi trường phát triển tích hợp Môi trường sử dụng tất đặc tính lớn Windows, chuột thực đơn nhanh, tăng suất bạn lập trình viên Trong mục cuối chương này, bạn thấy cách sử dụng tài liệu Microsoft rộng lớn với công cụ phát triển phần mềm NET(SDK) VS NET Bạn tìm thấy tài liệu vô giá bạn trở nên chuyên gia với ADO.NET C# Bạn học cách sử dụng tài liệu SQL Server Những đặc trưng chương này: ■ Phần mềm cần thiết ■ Phát triển chương trình ADO.NET bạn ■ Sự kết nối tới sở liệu Access Oracle ■ Giới thiệu Visual Studio NET ■ Sử dụng tài liệu NET ■ Sử dụng tài liệu SQL Server 1.2 Chương trình ADO.Net Trong mục bạn bắt tay vào việc lập trình ADO.NET thấy chương trình C# thực tác vụ sau đây: Kết nối tới sở liệu Northwind máy chủ phục vụ SQL Truy xuất hàng từ bảng khách hàng (Customers) Trình bày cột hàng Trang Khoa Công nghệ Thông tin Lập trình CSDL Đóng kết nối sở liệu Bạn giới thiệu tới nhiều khái niệm mục , hoàn toàn khám phá chương sau Đừng lo lắng tất chi tiết khái niệm giai đoạn này; bạn học chi tiết chương sau Ví dụ minh họa: FirstExample.cs using System; using System.Data.SqlClient; class FirstExample { public static void Main() { try { // bước 1: tạo đối tượng SqlConnection để kết nối tới // sở liệu Northwind SQL Server SqlConnection mySqlConnection = new SqlConnection( "server=localhost;database=Northwind;uid=sa;pwd=sa"); // bước 2: tạo đối tượng SqlCommand SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); // bước 3: gán thuộc tính CommandText đối tượng SqlCommand tới // phát biểu SELECT SQL để truy xuất hàng từ bảng Customers mySqlCommand.CommandText = "SELECT CustomerID, CompanyName, ContactName, Address "+ "FROM Customers "+ "WHERE CustomerID = 'ALFKI'"; // bước 4: mở kết nối sở liệu sử dụng // phương thức Open() đối tượng SqlConnection mySqlConnection.Open(); // bước 5: tạo đối tượng SqlDataReader gọi phương thức ExecuteReader() // đối tượng SqlCommand để chạy phát biểu SELECT SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); // bước 6: đọc hàng từ đối tượng SqlDataReader sử dụng // phương thức Read() mySqlDataReader.Read(); // bước 7: hiển thị giá trị cột Console.WriteLine("mySqlDataReader[\" CustomerID\"] = "+ mySqlDataReader["CustomerID"]); Console.WriteLine("mySqlDataReader[\" CompanyName\"] = "+ mySqlDataReader["CompanyName"]); Console.WriteLine("mySqlDataReader[\" ContactName\"] = "+ mySqlDataReader["ContactName"]); Console.WriteLine("mySqlDataReader[\" Address\"] = "+ mySqlDataReader["Address"]); // bước 8: đóng đối tượng SqlDataReader sử dụng phương thức Close() Trang Khoa Công nghệ Thông tin Lập trình CSDL mySqlDataReader.Close(); // bước 9: đóng đối tượng SqlConnection sử dụng phương thức Close() mySqlConnection.Close(); } catch (SqlException e) { Console.WriteLine("A SqlException was thrown"); Console.WriteLine("Number = "+ e.Number); Console.WriteLine("Message = "+ e.Message); Console.WriteLine("StackTrace:\n" + e.StackTrace); } } } 1.2.1 Kết nối sở liệu SQL Bạn sử dụng đối tượng lớp SqlConnection để kết nối tới sở liệu máy chủ phục vụ SQL Bước 1: phương thức Main() tạo đối tượng SqlConnection đặt tên mySqlConnection để kết nối tới sở liệu Northwind máy chủ phục vụ SQL: SqlConnection mySqlConnection = new SqlConnection( "server=localhost;database=Northwind;uid=sa;pwd=sa"); Chuỗi chuyển đến khởi dựng SqlConnection biết connection string chứa phần tử sau đây: Server: rõ tên máy tính SQL Server chạy- ví dụ localhost ; localhost tên chung tham chiếu tới máy tính mà chương trình bạn chạy Nếu sở liệu bạn chạy lưu trú máy tính khác với máy tính mà chương trình thời bạn chạy, bạn cần phải thay localhost với tên máy tính Database: rõ tên sở liệu - ví dụ Northwind uid : rõ tên tài khoản người sử dụng sở liệu : ví dụ sa ; sa tài khỏan người dùng sở liệu chung quản lý người quản trị sở liệu "database administrator" (DBA) Bạn sử dụng tài khoản người sử dụng sở liệu miễn có quền truy cập tới sở liệu Northwind pwd: rõ mật cho người sử dụng Mật cho người sử dụng “sa” sở liệu sa Bạn cần thay đổi pwd thành mật cho tài khoản sa bạn, hay tài khoản bạn định uid Bạn cần thay đổi thiết đặt số hay tất phần tử trước chuỗi kết nối bạn Bạn cần liên hệ với DBA (người quản trị sở liệu) bạn để lấy thông tin phần tử tạo chuỗi kết nối bạn Một bạn có giá trị đúng, bạn cần phải thực thay đổi tới chuỗi kết nối FirstExample.cs bạn với giá trị Trang Khoa Công nghệ Thông tin Lập trình CSDL Ghi nhớ: Một người quản trị sở liệu (DBA) chiụ trách nhiệm thực nhiệm vụ cài đặt phần mềm sở liệu, lưu sở liệu, vân vân Bước 2: tạo đối tượng SqlCommand đặt tên mySqlCommand sử dụng sau để gửi phát biểu SELECT cho sở liệu cho thực thi SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); Bạn sử dụng SQL để làm việc với thông tin cất giữ sở liệu SQL ngôn ngữ tiêu chuẩn công nghiệp hỗ trợ máy chủ phục vụ SQL, Access, Oracle Bạn sử dụng phát biểu SELECT SQL để truy xuất thông tin từ sở liệu Bước 3: gán thuộc tính CommandText mySqlCommand tạo bước trước tới phát biểu SELECT Phát biểu truy xuất cột CustomerID, CompanyName, ContactName, Address từ hàng bảng khách hàng có CustomerID ALFKI: mySqlCommand.CommandText = "SELECT CustomerID, CompanyName, ContactName, Address "+ "FROM Customers "+ "WHERE CustomerID = 'ALFKI'"; Bước 4: mở kết nối sở liệu sử dụng phương thức Open() đối tượng SqlConnection tạo Bước 1: mySqlConnection.Open(); Một kết nối tới sở liệu mở, bạn gửi lệnh cho sở liệu cho thực thi 1.2.2 Truy xuất liệu Bạn chạy phát biểu SELECT trước gán mySqlCommand việc gọi phương thức ExecuteReader() Phương thức trả đối tượng SqlDataReader bạn dùng để đọc liệu hàng trả phát biểu SELECT Bước 5: tạo đối tượng SqlDataReader gọi phương thức ExecuteReader() đối tượng mySqlCommand để chạy phát biểu SELECT SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); Bước 6: đọc hàng mySqlDataReader sử dụng phương thức Read(): mySqlDataReader.Read(); 1.2.3 Trình bày liệu Bạn đọc giá trị cho cột từ mySqlDataReader cách chuyển qua tên cột cặp dấu ngoặc vuông Chẳng hạn, mySqlDataReader[ " CustomerID "] trả giá trị cột CustomerID Bước 7: trình bày giá trị cột cho CustomerID, CompanyName, ContactName, Address: Console.WriteLine("mySqlDataReader[\" CustomerID\"] = "+ Trang Khoa Công nghệ Thông tin Lập trình CSDL mySqlDataReader["CustomerID"]); Console.WriteLine("mySqlDataReader[\" CompanyName\"] = "+ mySqlDataReader["CompanyName"]); Console.WriteLine("mySqlDataReader[\" ContactName\"] = "+ mySqlDataReader["ContactName"]); Console.WriteLine("mySqlDataReader[\" Address\"] = "+ mySqlDataReader["Address"]); 1.2.4 Đóng kết nối sở liệu Khi bạn kết thúc việc đọc hàng từ đối tượng SqlDataReader, đóng sử dụng phương thức Close() Bước 8: gọi phương thức Close() để đóng mySqlDataReader: mySqlDataReader.Close(); Khi bạn kết thúc truy cập sở liệu, đóng đối tượng SqlConnection bạn sử dụng phương thức Close() Bước 9: gọi phương thức Close() để đóng mySqlConnection: mySqlConnection.Close(); Xử lý ngoại lệ Bạn xử lý ngoại lệ mà có lẽ tung mã bạn bên khối try/catch Bạn ý tới chín bước đặt bên khối try/catch, với khối catch xử lý đối tượng SqlException mà có lẽ tung mã khối try Lớp SqlException đặc biệt dành cho sử dụng mã truy cập sở liệu máy chủ phục vụ SQL Ví dụ sau trình bày cách để xây dựng khối try/catch try { /* đoạn mã gay lỗi SqlException */ } catch (SqlException e) { Console.WriteLine("A SqlException was thrown"); Console.WriteLine("Number = "+ e.Number); Console.WriteLine("Message = "+ e.Message); Console.WriteLine("StackTrace:\n" + e.StackTrace); } Trang Khoa Công nghệ Thông tin Lập trình CSDL Những thuộc tính trình bày khối catch sau: Number: Số đặc trưng cho lỗi Message: Một chuỗi chứa mô tả lỗi StakTrace: Một chuổi chứa tên lớp phương thức từ đối tượng mà lỗi tung Hai ví dụ chung SqlException ném sau:  Đối tượng SqlConnection bạn kết nối tới sở liệu Nếu điều xảy ra, bạn cần phải kiểm tra chuỗi kết nối định kết nối tới sở liệu bạn  Phát biểu SELECT bạn chứa lỗi tả tên bảng hay cột Đầu ví dụ sau cho thấy xảy đối tượng SqlConnection FirstExample.cs kết nối tới sở liệu sở liệu thời suy giảm A SqlException was thrown Một lỗi kết nối tung Number = -2 Mã lỗi = -2 Message = Timeout expired Possible reasons: the timeout period elapsed prior Thông báo= kết thúc thời gian chờ kết nối nguyên nhân có thể: giai đọan thời gian chờ kết nối to completion of the operation, the server is not responding, qua trước hoàn tất thao tác, máy chủ không đáp ứngkết nối or the maximum pool size was exceeded Hoặc tới mức cực đại vủa bể chứa Please see the documentation for further details StackTrace: at System.Data.SqlClient.SqlConnection.Open() at FirstExample.Main() Bạn sử dụng đầu từ khối catch để xác định vấn đề Nếu sở liệu suy giảm, liên hệ với DBA (người quản lý liệu) bạn Ghi nhớ: Để cho ngắn gọn, chương trình sử dụng khối try/catch sách FirstExample.cs Bạn cần phải sử dụng khối try/catch chương trình để bắt ngoại lệ Để biết thêm nhiều chi tiết xử lý ngoại lệ hơn, Tôi xin giới thiệu bạn sách "Mastering Visual C# NET from Sybex (2002)." 1.3 Kết nối tới sở liệu Access Oracle Trang Khoa Công nghệ Thông tin Lập trình CSDL Trong mục bạn thấy ví dụ việc kết nối tới sở liệu Access lẫn Oracle Để tương tác với sở liệu chương trình bạn, bạn sử dụng lớp từ không gian tên System.Data.OleDb Không gian tên chứa lớp cho sử dụng với sở liệu hỗ trợ liên kết nhúng đối tượng cho sở liệu (OLE DB) Access Oracle 1.3.1 Kết nối tới sở liệu Access Bạn kết nối tới sở liệu Access sử dụng đối tượng OleDbConnection thay đối tượng SqlConnection - với chuỗi kết nối định dạng sau đây: provider=Microsoft.Jet.OLEDB.4.0;data source=databaseFile Với databaseFile đường dẫn tên file sở liệu Access bạn Chú ý bạn rõ provider ( nhà cung cấp) chuỗi kết nối, gán Microsoft.Jet.OLEDB.4.0 Ví dụ sau tạo chuỗi có tên connectionString với định dạng thích hợp để kết nối tới sở liệu Northwind Access lưu trữ file Northwind.mdb : string connectionString = "provider=Microsoft.Jet.OLEDB.4.0;" + "data source=F:\\Program Files\\Microsoft Office\\Office\\Samples\\Northwind.mdb"; Ghi chú: Chú ý sử dụng hai ký tự dấu sổ ngược (\\) phần data source chuỗi kết nối Dấu sổ ngược dùng để định dấu sổ ngược thứ hai đối sử ký tự; \\ xem xét \ chuỗi kết nối Bạn cần định vị file Northwind.mdb đĩa cứng bạn thiết lập chuỗi kết nối bạn cho phù hợp Giả thiết namespace System.Data.OleDb tham chiếu (imported), ví dụ sau tạo đối tượng OleDbConnection, thông qua connectionString (thiết đặt dòng mã trước đây) tới khởi dựng: OleDbConnection myOleDbConnection = new 01eDbConnection(connectionString); Danh sách 1.2 minh họa cách kết nối tới sở liệu Access Northwind sử dụng đối tượng OleDbConnection truy xuất hàng từ bảng khách hàng Chú ý bạn sử dụng đối tượng OleDbCommand OleDbDataReader để chạy câu lệnh SQL đọc kết trả từ sở liệu Access Danh sách 1.2: OLEDBCONNECTIONACCESS.CS /* OleDbConnectionAccess.cs illustrates how to use an OleDbConnection object to connect to an Access database */ using System; Trang Khoa Công nghệ Thông tin Lập trình CSDL using System.Data; using System.Data.OleDb; class OleDbConnectionAccess { public static void Main() { // formulate a string containing the details of the // database connection string connectionString = "provider=Microsoft.Jet.OLEDB.4.0;" + "data source=F:\\Program Files\\Microsoft Office\\Office\\Samples\\Northwind.mdb"; // create an OleDbConnection object to connect to the // database, passing the connection string to the constructor OleDbConnection myOleDbConnection = new OleDbConnection(connectionString); // create an OleDbCommand object OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand(); // set the CommandText property of the OleDbCommand object to // a SQL SELECT statement that retrieves a row from the Customers table myOleDbCommand.CommandText = "SELECT CustomerID, CompanyName, ContactName, Address "+ "FROM Customers "+ "WHERE CustomerID = 'ALFKI'"; // open the database connection using the // Open() method of the OleDbConnection object myOleDbConnection.Open(); // create an OleDbDataReader object and call the ExecuteReader() // method of the OleDbCommand object to run the SELECT statement OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader(); // read the row from the OleDbDataReader object using // the Read() method Trang Khoa Công nghệ Thông tin Lập trình CSDL myOleDbDataReader.Read(); // display the column values Console.WriteLine("myOleDbDataReader[\" CustomerID\"] = "+ myOleDbDataReader["CustomerID"]); Console.WriteLine("myOleDbDataReader[\" CompanyName\"] = "+ myOleDbDataReader["CompanyName"]); Console.WriteLine("myOleDbDataReader[\" ContactName\"] = "+ myOleDbDataReader["ContactName"]); Console.WriteLine("myOleDbDataReader[\" Address\"] = "+ myOleDbDataReader["Address"]); // close the OleDbDataReader object using the Close() method myOleDbDataReader.Close(); // close the OleDbConnection object using the Close() method myOleDbConnection.Close(); } } Đầu từ chương trình sau: myOleDbDataReader["CustomerID"] = ALFKI myOleDbDataReader["CompanyName"] = Alfreds Futterkiste myOleDbDataReader["ContactName"] = Maria Anders myOleDbDataReader["Address"] = Obere Str 57 1.3.2 Kết nối tới sở liệu Oracle Bạn kết nối tới sở liệu Oracle sử dụng đối tượng OleDbConnection với chuỗi kết nối với khuôn dạng sau đây: provider=MSDAORA;data source=OracleNetServiceName;user id=username;password=password với: OracleNetServiceName: rõ tên dịch vụ mạng sở liệu Oracle Oracle Net thành phần phần mềm cho phép bạn kết nối tới sở liệu qua mạng Bạn cần liên hệ với DBA(người quản trị sở liệu) bạn để lấy tên dịch vụ Mạng Oracle username: rõ tên người sử dụng sở liệu Password: rõ mật cho người sử dụng sở liệu Trang Khoa Công nghệ Thông tin Lập trình CSDL Ví dụ sau tạo chuỗi kết nối có tên connectionString với định dạng sác để kết nối tới sở liệu Oracle: string connectionString = "provider=MSDAORA;data source=ORCL;user id=SCOTT;password=TIGER"; Ghi chú: ID người sử dụng SCOTT với mật TIGER mặc định cho truy cập số sở liệu ví dụ Oracle Cơ sở liệu chứa bảng gọi emp chứa liệu người làm thuê mẫu Giả thiết namespace System.Data.OleDb tham chiếu, ví dụ sau tạo đối tượng OleDbConnection, thông qua connectionString tới khởi dựng: OleDbConnection myOleDbConnection = new OleDbConnection(connectionString); Danh sách 1.3 minh họa cách kết nối tới sở liệu Oracle sử dụng đối tượng OleDbConnection truy xuất hàng từ bảng emp Chú ý bạn sử dụng đối tượng OleDbCommand OleDbDataReader để chạy câu lệnh SQL đọc kết trả từ sở liệu Oracle Danh sách 1.3: OLEDBCONNECTIONORACLE.CS /* OleDbConnectionOracle.cs illustrates how to use an OleDbConnection object to connect to an Oracle database */ using System; using System.Data; using System.Data.OleDb; class OleDbConnectionOracle { public static void Main() { // formulate a string containing the details of the // database connection string connectionString = "provider=MSDAORA;data source=ORCL;user id=SCOTT;password=TIGER"; // create an OleDbConnection object to connect to the // database, passing the connection string to the constructor OleDbConnection myOleDbConnection = Trang 10 Khoa Công nghệ Thông tin Lập trình CSDL mySqlCommand.CommandText = "SELECT CustomerID, CompanyName " + "FROM Customers " + "WHERE CustomerID = '" + CustomerID + "'"; SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); while (mySqlDataReader.Read()) { Console.WriteLine("mySqlDataReader[\" CustomerID\"] = " + mySqlDataReader["CustomerID"]); Console.WriteLine("mySqlDataReader[\" CompanyName\"] = " + mySqlDataReader["CompanyName"]); } mySqlDataReader.Close(); } public static void Main() { SqlConnection mySqlConnection = new SqlConnection( "server=localhost;database=Northwind;uid=sa;pwd=sa"); // create a SqlCommand object and set its Commandtext property // to an INSERT statement SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); mySqlCommand.CommandText = "INSERT INTO Customers (" + " CustomerID, CompanyName" + ") VALUES (" + " 'J2COM', 'Jason Price Corporation'" + ")"; mySqlConnection.Open(); // call the ExecuteNonQuery() method of the SqlCommand object // to run the INSERT statement Trang 60 Khoa Công nghệ Thông tin Lập trình CSDL int numberOfRows = mySqlCommand.ExecuteNonQuery(); Console.WriteLine("Number of rows added = " + numberOfRows); DisplayRow(mySqlCommand, "J2COM"); // set the CommandText property of the SqlCommand object to // an UPDATE statement mySqlCommand.CommandText = "UPDATE Customers " + "SET CompanyName = 'New Company' " + "WHERE CustomerID = 'J2COM'"; // call the ExecuteNonQuery() method of the SqlCommand object // to run the UPDATE statement numberOfRows = mySqlCommand.ExecuteNonQuery(); Console.WriteLine("Number of rows updated = " + numberOfRows); DisplayRow(mySqlCommand, "J2COM"); // set the CommandText property of the SqlCommand object to // a DELETE statement mySqlCommand.CommandText = "DELETE FROM Customers " + "WHERE CustomerID = 'J2COM'"; // call the ExecuteNonQuery() method of the SqlCommand object // to run the DELETE statement numberOfRows = mySqlCommand.ExecuteNonQuery(); Console.WriteLine("Number of rows deleted = " + numberOfRows); mySqlConnection.Close(); } } The output from this program is as follows: Number of rows added = mySqlDataReader["CustomerID"] = J2COM mySqlDataReader["CompanyName"] = Jason Price Corporation Number of rows updated = mySqlDataReader["CustomerID"] = J2COM Trang 61 Khoa Công nghệ Thông tin Lập trình CSDL mySqlDataReader["CompanyName"] = New Company Number of rows deleted = Trang 62 Khoa Công nghệ Thông tin Lập trình CSDL Chương CÁC ĐỐI TƯỢNG TRUY XUẤT DỮ LIỆU 5.1 Đối tượng DataReader Đọc hàng sử dụng đối tượng DataReader (đôi biết đến trỏ firehose) điển hình nhanh chóng hơn đọc từ Dataset Những đối tượng DataReader phận trình cung cấp quản lý, có ba lớp DataReader: SqlDataReader, OleDbDataReader, OdbcDataReader Bạn sử dụng đối tượng DataReader để đọc hàng truy xuất từ sở liệu sử dụng đối tượng Command Những đối tượng DataReader sử dụng để đọc hàng theo hướng xuôi Những đối tượng DataReader đóng vai giải pháp đối tượng Dataset (Những đối tượng Dataset cho phép bạn lưu trữ hàng từ sở liệu, bạn làm việc với ngắt kết nối với sở liệu) Bạn sử dụng DataReader để sửa đổi hàng sở liệu 5.1.1 Lớp SqlDataReader Bạn sử dụng đối tượng lớp SqlDataReader để đọc hàng truy xuất từ sở liệu may chủ phục vụ SQL, đối tượng lớp OleDbDataReader để đọc hàng từ sở liệu hỗ trợ OLE DB, Oracle hay Access, đối tượng lớp OdbcDataReader để đọc hang từ sở liệu hỗ trợ ODBC Bảng 5.1 cho thấy số thuộc tính SqlDataReader Bảng 5.1: thuộc tính SqlDataReader Thuộc tính Kiểu Mô tả Depth int Giữ giá trị định chiều sâu lồng cho hàng thời FieldCount int Giữ số cột hàng thời IsClosed bool Giữ giá trị bool định liệu đối tượng đọc liệu đóng RecordsAffected int Giữ số lượng hàng thêm vào, sửa đổi, hay loại bỏ thực câu lệnh SQL Ghi nhớ chi tiết cột DataTable bao gồm tên (tên cột lưu trữ ColumnName DataTable trả lại), số thứ tự (được cất giữ ColumnOrdinal), chiều dài cực đại giá trị cất giữ cột (được cất giữ ColumnSize), xác quy mô cột số (được cất giữ NumericPrecision NumericScale), Sự Chính xác số tổng chữ số tạo số, quy mô số tổng chữ số bên phải dấu phẩy số thập phân 5.1.2 Tạo đối tượng SqlDataReader Bạn tạo đối tượng DataReader với cách gọi phương thức ExecuteReader() đối tượng Command Những đối tượng Command trình bày Trang 63 Khoa Công nghệ Thông tin Lập trình CSDL chương trước thí dụ, code sau tạo đối tượng cần thiết thực thi phát biểu SELECT truy xuất năm hàng từ bảng Product sở liệu SQL Server Northwind, lưu giữ hàng trả đối tượng SqlDataReader: SqlConnection mySqlConnection = new SqlConnection( "server=localhost;database=Northwind;uid=sa;pwd=sa" ); SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); mySqlCommand.CommandText = "SELECT TOP ProductID, ProductName, UnitPrice, " + "UnitsInStock, Discontinued " + "FROM Products " + "ORDER BY ProductID"; mySqlConnection.Open(); SqlDataReader productsSqlDataReader = mySqlCommand.ExecuteReader(); Chú ý đối tượng SqlDataReader trả phương thức ExecuteReader() cất giữ đối tượng productsSqlDataReader Bạn học cách sử dụng productsSqlDataReader mục sau 5.1.3 Đọc hàng từ đối tượng SqlDataReader Đ hàng từ đối tượng DataReader sử dụng phương pháp Read() Phương pháp trả lại giá trị true (Bool) có hàng khác để đọc, ngược lại trả false Có thể đọc giá trị cột riêng lẻ hàng từ DataReader gởi qua tên cột cặp ngoặc vuông ví dụ, để đọc cột CustomerID, bạn sử dụng productsSqlDataReader[ " ProductID"] Bạn rõ cột bạn muốn có cách gởi qua giá trị số dấu ngoặc vuông Chẳng hạn, productsSqlDataReader[0] Cũng trả giá trị cột ProductID Sự khác hai cách đọc giá trị cột thực hiện: sử dụng số vị trí cột thay tên cột dẫn đến thực nhanh chóng mã Chúng ta xem xét hai đọan mã minh họa hai cách đọc giá trị cột đoạn mã sử dụng tên cột để đọc giá trị cột while (productsSqlDataReader.Read()) { Console.WriteLine(productsSqlDataReader["ProductID"]); Console.WriteLine(productsSqlDataReader["ProductName"]); Console.WriteLine(productsSqlDataReader["UnitPrice"]); Trang 64 Khoa Công nghệ Thông tin Lập trình CSDL Console.WriteLine(productsSqlDataReader["Discontinued"]); } Mặc dù đoạn mã thứ hai nhanh chóng linh hoạt bạn phải viết mã cứng số cột vị trí Nếu vị trí cột phát biểu SELECT thay đổi, bạn cần thay đổi mã cứng vị trí cột -và ác mộng bảo trì Đồng thời, mã hóa cứng vị trí cột làm chương trình bạn khó đọc Có giải pháp cho vấn đề này: bạn gọi phương thức GetOrdinal() đối tượng DataReader Phương thức GetOrdinal() trả lại vị trí cột có tên đưa vào tham số; vị trí biết thứ tự cột Bạn sử dụng vị trí trả GetOrdinal() để truy xuất giá trị cột từ DataReader Chúng ta xem xét đoạn mã sử dụng phương thức GetOrdinal() để truy xuất vị trí cột phát biểu ví dụ SELECT sau: int productIDColPos = productsSqlDataReader.GetOrdinal("ProductID"); int productNameColPos = productsSqlDataReader.GetOrdinal("ProductName"); int unitPriceColPos = productsSqlDataReader.GetOrdinal("UnitPrice"); int discontinuedColPos = productsSqlDataReader.GetOrdinal("Discontinued"); Và sử dụng giá trị int để truy xuất giá trị cột từ đối tượng productsSqlDataReader: while (productsSqlDataReader.Read()) { Console.WriteLine(productsSqlDataReader[productIDColPos]); Console.WriteLine(productsSqlDataReader[productNameColPos]); Console.WriteLine(productsSqlDataReader[unitPriceColPos]); Console.WriteLine(productsSqlDataReader[discontinuedColPos]); } Cách cho bạn ưu điểm hai phương án : thực tính linh hoạt cao Cảnh báo: Khi bạn kết thúc đọc hàng từ đối tượng DataReader bạn, đóng phương thức Close().Lý đối tượng DataReader trói buộc đối tượng Kết nối này, lệnh khác(Command) thực có DataReader mở giữ kết nối này( đối tượng Connection) Ví dụ sau đóng productsSqlDataReader sử dụng phương thức Close() Trang 65 Khoa Công nghệ Thông tin Lập trình CSDL productsSqlDataReader.Close(); Một bạn đóng DataReader bạn, Bạn thực lệnh(Command) khác sử dụng đối tượng Kết nối (Connection)của bạn 5.1.4 Thực nhiều câu lệnh SQL Điển hình, chương trình C# sở liệu bạn chạy máy tính khác truyền thông qua mạng Mỗi lần bạn thực lệnh chương trình bạn, phải hành trình qua mạng tới sở liệu thực sở liệu, kết phải gửi trả lại ngang qua mạng đến chương trình bạn Đó tải giao thông mạng! Một cách tiềm tàng để giảm bớt giao thông mạng thực nhiều câu lệnh SQL thời điểm Trong mục này, bạn thấy cách để thực thi nhiều phát biểu SELECT truy xuất kết quả, bạn thấy cách thực nhiều phát biểu SELECT, INSERT, UPDATE , DELETE nào, đặt xen kẽ lệnh THỰC THI NHIỀU PHÁT BIỂU SELECT: Chúng ta xem xét cách thực nhiều phát biểu SELECT truy xuất kết Mã sau tạo đối tượng SqlCommand có tên mySqlCommand gán thuộc tính CommandText tới ba phát biểu SELECT khác : SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); mySqlCommand.CommandText = "SELECT TOP ProductID, ProductName " + "FROM Products " + "ORDER BY ProductID;" + "SELECT TOP CustomerID, CompanyName " + "FROM Customers " + "ORDER BY CustomerID;" + "SELECT TOP OrderID, CustomerID " + "FROM Orders " + "ORDER BY OrderID;"; Chú ý tất phát biểu SELECT tách dấu chấm phẩy THỰC THI NHIỀU PHÁT BIỂU SELECT, INSERT, UPDATE, VÀ DELETE: Bạn đặt xen nhiều phát biểu SELECT, INSERT, UPDATE, DELETE Điều giảm thiểu giao thông mạng bạn gửi nhiều câu lệnh SQL tới sở liệu vào chuyến Mã sau tạo đối tượng SqlCommand có tên mySqlCommand gán thuộc tính CommandText tập hợp nhiều câu lệnh SQL đặt xen: Trang 66 Khoa Công nghệ Thông tin Lập trình CSDL mySqlCommand.CommandText = "INSERT INTO Customers (CustomerID, CompanyName) "+ "VALUES ('J5COM', 'Jason Company');" + "SELECT CustomerID, CompanyName " + "FROM Customers " + "WHERE CustomerID = 'J5COM';" + "UPDATE Customers " + "SET CompanyName = 'Another Jason Company' " + "WHERE CustomerID = 'J5COM';" + "SELECT CustomerID, CompanyName " + "FROM Customers " + "WHERE CustomerID = 'J5COM';" + "DELETE FROM Customers " + "WHERE CustomerID = 'J5COM';"; Những câu lệnh SQL sau : ■ Phát biểu INSERT thêm hàng vào bảng khách hàng ■ Phát biểu SELECT truy xuất hàng ■ Phát biểu UPDATE sửa đổi cột CompanyName hàng ■ Phát biểu SELECT thứ hai truy xuất hàng lần ■ Phát biểu DELETE loại bỏ hàng 5.1.5 Sử dụng đối tượng SqlDataReader Visual Studio.Net Không thể tạo đối tượng DataReader trực quan Visual Studio NET (VS NET); tạo chúng sử dụng lệnh chương trình Trong mục này, bạn thấy cách tạo đối tượng SqlDataReader sử dụng để truy xuất tập hợp kết từ đối tượng SqlCommand nào, bạn thấy cách tạo sử dụng VS NET chương trước Đối tượng SqlCommand chứa phát biểu SELECT truy xuất cột CustomerID, CompanyName, Và ContactName từ bảng khách hàng Bạn hiểu cách để thực phát biểu SELECT , đọc tập hợp kết sử dụng đối tượng SqlDataReader, hiển thị tập hợp kết điều khiển ListView Một điều khiển ListView cho phép bạn xem thông tin đặt lưới Ghi Có thể sửa đổi dự án MyDataReader Bạn tạo Trong chương trước đây, hay bạn không muốn theo dẫn mục này, bạn đơn giản mở dự án hoàn chỉnh VS NET chứa thư mục DataReader Để mở dự án bổ sung, lựa chọn File 􀂾 Open 􀂾 Project, duyệt tới VS NET Project \ thư mục DataReader, mở File WindowsApplication4.csproj Trang 67 Khoa Công nghệ Thông tin Lập trình CSDL Nếu sửa đổi ứng dụng Windows có bạn, kéo điều khiển ListView vào Form bạn Hình 5.1 cho thấy Form với điều khiển ListView Chắc chắn thuộc tính "Name" ListView bạn gán tên listView1 (đây Tên mặc định, bạn không nên thay đổi nó) Hình 5.1: thêm điều khiển ListView vào Form Tiếp theo, nhấn đúp vùng form bạn bên điều khiển ListView thao tác làm VS NET hiển thị cửa sổ biên tập mã , bạn nhìn thấy trỏ định vị phương thức Form1_Load() ; phương thức gọi form bạn tải giai đọan tiên Điển hình, phương thức mà từ bạn muốn thực thao tác với sở liệu bạn thiết đặt phương thức Form1_Load() bạn với mã sau đây: private void Form1_Load(object sender, System.EventArgs e) { sqlConnection1.Open(); System.Data.SqlClient.SqlDataReader mySqlDataReader = sqlCommand1.ExecuteReader(); while (mySqlDataReader.Read()) { listView1.Items.Add(mySqlDataReader["CustomerID"].ToString()); listView1.Items.Add(mySqlDataReader["CompanyName"].ToString()); listView1.Items.Add(mySqlDataReader["ContactName"].ToString()); Trang 68 Khoa Công nghệ Thông tin Lập trình CSDL } mySqlDataReader.Close(); sqlConnection1.Close(); } 5.2 Đối tượng DataAdapter 5.2.1 Lớp DataAdapter Sử dụng đối tượng lớp SqlDataAdapter để đồng hóa liệu cất giữ đối tượng Dataset với sở liệu SQL Server Bạn sử dụng đối tượng lớp OleDbDataAdapter để đồng hóa liệu với sở liệu hỗ trợ OLE DB, Như Oracle hay Access Bạn sử dụng đối tượng lớp OdbcDataAdapter để đồng hóa liệu với sở liệu hỗ trợ ODBC 5.2.2 Tạo đối tượng DataAdapter Tạo đối tượng SqlDataAdapter sử dụng số khởi tạo SqlDataAdapter sau : 1, SqlDataAdapter() 2, SqlDataAdapter(SqlCommand mySqlCommand) 3, SqlDataAdapter(string selectCommandString, SqlConnection mySqlConnection) 4, SqlDataAdapter(string selectCommandString, string connectionString) Với _ mySqlCommand đại diện đối tượng SqlCommand bạn _ selectCommandString định phát biểu SELECT hay lệnh gọi thủ tục lưu trữ bạn _ mySqlConnection đại diện đối tượng kết nối (SqlConnection) bạn _ connectionString định chuỗi kết nối bạn để kết nối sở liệu Ví dụ sau sử dụng khởi tạo SqlDataAdapter() để tạo đối tượng SqlDataAdapter SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(); Trước sử dụng mySqlDataAdapter để lưu trú Dataset bạn phải gán thuộc tính SelectCommand với SqlCommand chứa phát biểu SELECT hay lệnh gọi thủ tục lưu trữ Ví dụ sau tạo đối tượng SqlCommand với thuộc tính CommandText gán tới phát biểu SELECT mà truy xuất năm hàng đầu từ bảng sản phẩm, thuộc tính CommandText mySqlDataAdapter gán đến đối tượng SqlCommand vừa nói trên: SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); mySqlCommand.CommandText = "SELECT TOP ProductID, ProductName, UnitPrice " + Trang 69 Khoa Công nghệ Thông tin Lập trình CSDL "FROM Products " + "ORDER BY ProductID"; mySqlDataAdapter.SelectCommand = mySqlCommand; Sử dụng khởi tạo SqlDataAdapter(SqlCommand MySqlCommand) : SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(mySqlCommand); Sử dụng khởi tạo SqlDataAdapter(string SelectCommandString, SqlConnection mySqlConnection) : SqlConnection mySqlConnection = new SqlConnection( "server=localhost;database=Northwind;uid=sa;pwd=sa"); string selectCommandString = "SELECT TOP 10 ProductID, ProductName, UnitPrice " + "FROM Products " + “ORDER BY ProductID"; SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(selectCommandString, mySqlConnection); Sử dụng khởi tạo SqlDataAdapter(string SelectCommandString, chuỗi connectionString) string selectCommandString = "server=localhost;database=Northwind;uid=sa;pwd=sa"; string connectionString = "SELECT TOP 10 ProductID, ProductName, UnitPrice " + "FROM Products " + "ORDER BY ProductID"; SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(selectCommandString, connectionString); 5.3 Đối tượng DataSet 5.3.1 Lớp DataSet Sử dụng đối tượng lớp Dataset để đại diện cho cục thông tin cất giữ sở liệu Bạn thực thay đổi tới cục Dataset bạn sau sau đồng hóa thay đổi với sở liệu thông qua DataAdapter Một Dataset đại diện cho cấu trúc sở liệu bảng, hàng cột Bạn chí thêm ràng buộc vào bảng cục cất giữ bạn để giám sát ràng buộc khóa khóa ngoại Trang 70 Khoa Công nghệ Thông tin Lập trình CSDL Hình 5.2 trình bày Dataset mối quan hệ tới vài đối tượng lưu trữ bên Như thấy từ hình này, ta lưu trữ nhiều đối tượng DataTable Dataset,… Hình 5.2 trình bày Dataset mối quan hệ tới vài đối tượng 5.3.2 Tạo đối tượng DataSet Tạo đối tượng Dataset sử dụng khởi tạo Dataset sau đây: 1, DataSet() 2, DataSet(string dataSetNameString) � DataSetNameString chuỗi gán tới thuộc tính DataSetName đối tượng dataset bạn Sự thiết đặt thuộc tính DataSetName tùy chọn Ví dụ sau sử dụng khởi dựng Dataset() để tạo đối tượng Dataset Trang 71 Khoa Công nghệ Thông tin Lập trình CSDL DataSet myDataSet = new DataSet(); Sử dụng khởi tạo Dataset(string dataSetNameString) để tạo đối tượng dataset DataSet myDataSet = new DataSet("myDataSet"); 5.3.3 Cư trú đối tượng DataSet Trong mục ta học cách lưu trú Dataset nào_ sử dụng phương thức Fill() đối tượng DataAdapter Đặc biệt, ta thấy cách lưu trú Dataset nào, sử dụng: 􀂾 Một phát biểu SELECT 􀂾 Một phạm vi hàng 􀂾 Một thủ tục nội (stored procedure) SỬ DỤNG MỘT PHÁT BIỂU SELECT: SqlConnection mySqlConnection = new SqlConnection( "server=localhost;database=Northwind;uid=sa;pwd=sa"); SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); mySqlCommand.CommandText = "SELECT TOP ProductID, ProductName, UnitPrice " + "FROM Products " + "ORDER BY ProductID"; SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(); mySqlDataAdapter.SelectCommand = mySqlCommand; DataSet myDataSet = new DataSet(); mySqlConnection.Open(); SỬ DỤNG MỘT DÃI NHỮNG HÀNG: int Fill(DataSet myDataSet) int Fill(DataTable myDataTable) int Fill(DataSet myDataSet, string dataTableName) int Fill(DataSet myDataSet, int startRow, int numOfRows, string dataTableName) SỬ DỤNG MỘT THỦ TỤC LƯU TRỮ: CREATE PROCEDURE CustOrderHist @CustomerID nchar(5) AS SELECT ProductName, Total=SUM(Quantity) Trang 72 Khoa Công nghệ Thông tin Lập trình CSDL FROM Products P, [Order Details] OD, Orders O, Customers C WHERE C.CustomerID = @CustomerID AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID GROUP BY ProductName 5.3.4 Viết đọc XML sử dụng đối tượng DataSet XML định dạng tiện lợi cho chuyển dời thông tin qua lại Ta viết nội dung đối tượng DataTable chứa Dataset thành file XML sử dụng phương thức WriteXml() file XML viết phương thức chứa đựng tên cột giá trị DataTable Ta viết mô hình đối tượng Dataset thành file XML sử dụng phương thức WriteXmlSchema() file XML viết phương pháp chứa đựng cấu trúc đối tượng DataTable lưu trữ Dataset Bạn lấy XML Dataset sử dụng phương thức GetXml() , để trả XML chuỗi Ta đọc nội dung đối tượng DataTable file XML vào Dataset sử dụng phương thức ReadXml() Bạn đọc mô hình chứa một file XML sử dụng phương thức ReadXmlSchema() SỬ DỤNG PHƯƠNG THỨC WriteXml(): Cho có đối tượng Dataset đặt tên MyDataSet Giả thiết myDataSet có DataTable chứa cột CustomerID, CompanyName, ContactName, Và Address thuộc hai hàng từ bảng Customers Mã sau cho thấy điều SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); mySqlCommand.CommandText = "SELECT TOP CustomerID, CompanyName, ContactName, Address " + "FROM Customers " + "ORDER BY CustomerID"; SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(); mySqlDataAdapter.SelectCommand = mySqlCommand; DataSet myDataSet = new DataSet(); mySqlConnection.Open(); Console.WriteLine("Retrieving rows from the Customers table"); mySqlDataAdapter.Fill(myDataSet, "Customers"); mySqlConnection.Close(); SỬ DỤNG PHƯƠNG THỨC WriteXmlSchema(): Trang 73 Khoa Công nghệ Thông tin Lập trình CSDL Có thể viết mô hình myDataSet tới file XML sử dụng phương thức WriteXmlSchema() Chẳng hạn: myDataSet.WriteXmlSchema("myXmlSchemaFile.xml"); SỬ DỤNG PHƯƠNG THỨC ReadXml() Đọc nội dung file XML vào đối tượng Dataset sử dụng phương thức ReadXml() Phương thức đọc hàng cột từ file XML vào đối tượng DataTable Dataset Chẳng hạn, phát biểu sau sử dụng phương thức ReadXml() để đọc file XML myXmlFile.xml viết trước phương thức WriteXml() : myDataSet.ReadXml("myXmlFile.xml"); Trang 74 [...]... Bạn c thể thêm code cho một biến c trong VS NET thí dụ, bạn muốn thêm code cho miến c Statechange c a đối tượng CqlConnection1 đã đư c tạo để làm điều này, trư c tiên chọn SqlConnection1 trên khay, rồi click vào nút Events (biểu tượng tia sét) bên trên c a sổ properties, một danh sách c c biến c c a đối tượng SqlConnection1 sẻ đư c hiển thị trong c a sổ properties Double click vào tên c a biến c ... Khoa C ng nghệ Thông tin Lập trình CSDL Milliseconds = 0 mySqlConnection.State = Open count = 5 Milliseconds = 0 mySqlConnection.State = Open count = 6 Milliseconds = 0 mySqlConnection.State = Open count = 7 Milliseconds = 0 mySqlConnection.State = Open count = 8 Milliseconds = 0 mySqlConnection.State = Open count = 9 Milliseconds = 0 mySqlConnection.State = Open count = 10 Milliseconds = 0 mySqlConnection.State... click vào danh sách sổ xuống và thiết đặt ConnectionString một c ch tr c quan Để làm điều này, bạn chọn New Connection trong damh sách Sổ xuống, sẽ hiễn thị hộp thọai Data Link Properties Hộp thọai này chứa bốn Tab, Tab Provider cho phép bạn chọn lựa kiểu c a bộ cung c p mà bạn muốn kết nối, như hình 2.4 Hình 2.4: chọn lựa bộ cung c p dữ liệu Click nút Next để chuyển đến Tab Connection ( bạn c ng c ... những c t con tới null, hay gán những c t con tới một giá trị m c định Bạn c thể c t giữ nhiều đối tượng ForeignKeyConstraint trong một DataTable thông qua một đối tượng ConstraintCollection Trang 18 Khoa C ng nghệ Thông tin Lập trình CSDL 2.4 Lớp kết nối CSDL SQL Server 2.4.1 Sử dụng lớp SqlConnection để kết nối CSDL SQL server Bộ khới tạo: SqlConnection() 1: SqlConnection() 2: SqlConnection(string connectionString)... tượng ( c a lớp System.Object), và nó đại diện cho đối tượng phát ra biến c Chú ý: lớp System.Oject là lớp c sở c a tất c c c lớp nói c ch kh c , tất c c c lớp đều bắt nguồn từ lớp System.Object Tham số Second là một đối tượng c a lớp bắt nguồn từ lớp System.EventArgs lớp System.EventArgs là lớp c sở nắm giữ dữ liệu về biến c và mô tả những chi tiết về biến c trong trường hợp c a biến c StateChange... chạy form Đương nhiên bạn vẫn c thể làm vi c với chúng một c ch tr c quan khi thiết kế form Trang 24 Khoa C ng nghệ Thông tin Lập trình CSDL Bên phải c a form, bạn chú ý đến c a sổ thu c tính, nơi mà bạn sử dụng để thiết đặt những thu c tính Cho đối tượng SqlConnection Để thiết đặt thu c tính ConnectionString_ mô tả chi tiết về c sở dữ liệu kết nối , bạn c thể gõ tr c tiếp chuỗi kết nối vào ho c. .. pool Size SqlConnection mySqlConnection = new SqlConnection("server=localhost;database=Northwind;uid=sa;pwd=sa;" + "max pool size=10;min pool size=5"); CONNECTIONPOOLING.CS /* ConnectionPooling.cs illustrates connection pooling */ using System; using System.Data; using System.Data.SqlClient; class ConnectionPooling { public static void Main() { // create a SqlConnection object to connect to the database,... Console.WriteLine("mySqlConnection.State = "+ mySqlConnection.State); // close the database connection using the Close() method // of the SqlConnection object mySqlConnection.Close(); } } } The output from this program is as follows: count = 1 Milliseconds = 101 mySqlConnection.State = Open count = 2 Milliseconds = 0 mySqlConnection.State = Open count = 3 Milliseconds = 0 mySqlConnection.State = Open count = 4 Trang... kết nối c a bạn đã đóng KẾT NỐI TR C TIẾP: string connectionString = "server=localhost;database=Northwind;uid=sa;pwd=sa"; SqlConnection mySqlConnection = new SqlConnection(connectionString); KẾT NỐI ĐƠN GIẢN: SqlConnection mySqlConnection = new SqlConnection("server=localhost;database=Northwind;uid=sa;pwd=sa"); THỜI GIAN CHỜ KẾT NỐI (connection timeout) string connectionString = "server=localhost;database=Northwind;uid=sa;pwd=sa;"... SELECT SQL và c t giữ những hàng c c bộ Nhà cung c p đư c quản lý và những lớp tập dữ liệu chung Để cung c p sự truy c p c sở dữ liệu c c kết nối lẫn không kết nối, ADO.NET định nghĩa hai tập hợp c a lớp: Managed Provider (nhà cung c p đư c quản lý) và generic data (dữ liệu chung) Trang 13 Khoa C ng nghệ Thông tin Lập trình CSDL Bạn sử dụng những đối tượng c a những lớp managed provider để tr c tiếp ... OleDbCommand OleDbDataReader để chạy c u lệnh SQL đ c kết trả từ sở liệu Access Danh sách 1.2: OLEDBCONNECTIONACCESS.CS /* OleDbConnectionAccess.cs illustrates how to use an OleDbConnection object... Office\Office\Samples\Northwind.mdb"; // create an OleDbConnection object to connect to the // database, passing the connection string to the constructor OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);... đ c giá trị cho c t từ mySqlDataReader c ch chuyển qua tên c t c p dấu ngo c vuông Chẳng hạn, mySqlDataReader[ " CustomerID "] trả giá trị c t CustomerID Bư c 7: trình bày giá trị c t cho CustomerID,

Ngày đăng: 30/12/2016, 22:35

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan