1. Trang chủ
  2. » Công Nghệ Thông Tin

Chuẩn bị cho Kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 6: Lập trình .NET DB2 giao diện liên tục với các khung công tác .NET (.NET framework) ppsx

42 297 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 42
Dung lượng 219,9 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thành phần then chốt của việc truy cập đã ngắt kết nối trong ADO.NET là lớp DataSet, các cá thể của lớp này hoạt động như một bộ nhớ sẵn cache cơ sở dữ liệu, nằm trong bộ nhớ ứng dụng củ

Trang 1

Chuẩn bị cho Kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 6: Lập trình NET

DB2 giao diện liên tục với các khung công tác NET (.NET framework)

Peter Atthem, Chuyên gia IT, IBM

Tóm tắt: Tìm hiểu về cách viết các ứng dụng NET có giao diện với IBM®

DB2® Bạn sẽ được giới thiệu về mô hình đối tượng ADO.NET và sẽ thấy làm thế nào để thi hành các câu lệnh SQL với ADO.NET Đây là bài thứ sáu trong một loạt bài gồm chín hướng dẫn mà bạn có thể sử dụng để giúp chuẩn bị cho kỳ thi lấy chững chỉ phát triển ứng dụng Họ IBM DB2 9 (kỳ thi 733)

Trước khi bạn bắt đầu

Về loạt bài viết này

Chứng chỉ Nhà phát triển ứng dụng được IBM công nhận xác nhận với những người khác rằng bạn là một nhà phát triển ứng dụng mức trung cấp hoặc cao cấp

về IBM DB2 với Linux™, UNIX® và Windows® và cho biết rằng bạn có các kỹ năng giỏi trong tất cả các công việc lập trình chung cũng như lập trình SQL nhúng, lập trình ODBC/CLI, lập trình NET hoặc lập trình Java™

Loạt bài gồm chín hướng dẫn miễn phí này được thiết kế để giúp bạn chuẩn bị cho

kỳ thi lấy chứng chỉ Phát triển ứng dụng DB2 9 cho Linux, UNIX và Windows (kỳ thi 733) Mỗi hướng dẫn bao gồm một liên kết đến một bản tải về dùng thử miễn phí DB2 9 cho Linux, UNIX và Windows Các hướng dẫn này cung cấp một cơ sở vững chắc cho mỗi phần của kỳ thi Tuy nhiên, bạn không nên dựa vào các hướng dẫn này như là sự chuẩn bị duy nhất của bạn cho kỳ thi này

Trang 2

Hướng dẫn này trình bày về cái gì?

Trong hướng dẫn này, bạn sẽ tìm hiểu về cách viết các ứng dụng NET có giao diện với DB2 IBM Bạn sẽ thấy làm thế nào để:

 Kết nối với một cơ sở dữ liệu DB2 từ một ứng dụng NET

 Sử dụng ADO.NET để đọc và cập nhật dữ liệu trong một cơ sở dữ liệu DB2

 Sử dụng ADO.NET để làm việc với các kết quả

 Xây dựng một ứng dụng ADO.NET

 Sửa lỗi một ứng dụng DB2 NET

Các tư liệu trong hướng dẫn này trình bày các mục tiêu trong Phần 6 của kỳ thi cấp chứng chỉ Nhà phát triển ứng dụng DB2 9 (kỳ thi 733), mang tên " Lập trình NET"

Ai nên tìm hiểu hướng dẫn này?

Để tham dự kỳ thi Phát triển ứng dụng Họ DB2 9, bạn đã phải vượt qua được kỳ thi Cơ bản về họ DB2 9 (kỳ thi 730) Bạn có thể sử dụng loạt bài hướng dẫn Cơ bản về họ DB2 (DB2 9 Family Fundamentals tutorial series) để chuẩn bị cho kỳ thi đó Đây là một loạt hướng dẫn rất phổ biến đã giúp cho nhiều người hiểu về các khái niệm cơ bản về họ các sản phẩm DB2

Trang 3

Ngoài nền tảng DB2 này, bạn cũng nên có kiến thức cơ bản về nền tảng SQL và NET trước khi bạn bắt đầu hướng dẫn này

Hướng dẫn này là một trong những công cụ có thể giúp bạn chuẩn bị cho kỳ thi

733 Bạn cũng nên xem lại phần Tài nguyên ở phần cuối của hướng dẫn này để biết thêm thông tin

Các yêu cầu hệ thống

Bạn không cần phải dùng một bản sao của Cơ sở dữ liệu đa năng DB2 (DB2

Universal Database) để hoàn thành hướng dẫn này Tuy nhiên, bạn có thể tải về một phiên bản dùng thử miễn phí của Ấn bản doanh nghiệp DB2 9, nếu bạn muốn

Nếu bạn có kế hoạch để phát triển các ứng dụng NET cho DB2 hoặc bạn có kế hoạch tự mình chạy thử các mã ví dụ mẫu của hướng dẫn này, bạn cần phải hoàn thành các nhiệm vụ sau:

 Cài đặt DB2 9 cho Linux, UNIX và Windows

 Tạo cơ sở dữ liệu mẫu bằng cách chạy db2sampl từ DB2 CLP Mã mẫu trong bài viết này đã được viết để làm việc với cơ sở dữ liệu này

 Cài đặt Microsoft® Visual Studio NET 2003 hoặc mới hơn

Giới thiệu về lập trình NET cho DB2

Khung công tác NET (.NET framework)

Trang 4

Khung công tác NET đã được Microsoft thúc đẩy như là một nền tảng phát triển

phần mềm mới cho Windows để thay thế công nghệ Component Object Model (COM – Mô hình đối tượng thành phần) Các tính năng quan trọng của khung công tác này như sau:

 Bạn có thể mã các ứng dụng NET trong hơn bốn mươi ngôn ngữ lập trình khác nhau Các ngôn ngữ phổ biến nhất cho việc phát triển NET là C# và Visual Basic NET

 Thư viện lớp khung công tác NET cung cấp các khối xây dựng để bạn xây dựng các ứng dụng NET Thư viện lớp này là không cần đến ngôn ngữ lập trình (language agnostic) và cung cấp các giao diện cho hệ điều hành và các dịch vụ ứng dụng

 Bất kể bạn viết ứng dụng NET của bạn bằng ngôn ngữ nào, nó sẽ biên dịch

thành Ngôn ngữ trung gian (Intermediate Language - IL), một kiểu mã byte

(bytecode)

 Common Language Runtime (CLR – Thời gian chạy ngôn ngữ chung) là trung tâm của khung công tác NET Nó biên dịch mã IL trong lúc đang chạy và sau đó chạy nó Trong lúc đang chạy mã IL đã biên dịch, CLR kích hoạt các đối tượng, kiểm tra chúng về đảm bảo an ninh, cấp phát bộ nhớ cho chúng, chạy chúng và dọn sạch bộ nhớ ngay sau khi thi hành xong

Khung công tác NET cung cấp các hỗ trợ truy cập dữ liệu rộng lớn thông qua ADO.NET ADO.NET hỗ trợ cả việc truy cập được kết nối lẫn truy cập đã ngắt kết nối Thành phần then chốt của việc truy cập đã ngắt kết nối trong ADO.NET là lớp DataSet, các cá thể của lớp này hoạt động như một bộ nhớ sẵn (cache) cơ sở

dữ liệu, nằm trong bộ nhớ ứng dụng của bạn Việc truy cập đã kết nối trong

ADO.NET không yêu cầu thêm lớp bổ sung nào

Trang 5

Đối với cả hai cách truy cập đã kết nối lẫn truy cập đã ngắt kết nối, các ứng dụng NET truy cập cơ sở dữ liệu thông qua cái gọi là trình cung cấp dữ liệu NET

(.NET data provider) Nhiều sản phẩm cơ sở dữ liệu khác nhau bao gồm sẵn các

trình cung cấp dữ liệu NET riêng của chúng, kể cả DB2 cho Windows Một trình cung cấp dữ liệu NET triển khai thực hiện các lớp cơ bản sau đây:

 Connection: Thiết lập và quản lý một kết nối cơ sở dữ liệu

 Command:Thi hành một câu lệnh SQL đối với một cơ sở dữ liệu

 DataReader: đọc và trả về dữ liệu của bộ kết quả từ một cơ sở dữ liệu

 DataAdapter: Liên kết một cá thể DataSet tới một cơ sở dữ liệu Thông qua một cá thể DataAdapter, DataSet có thể đọc và ghi các dữ liệu bảng cơ sở dữ liệu Trình cung cấp dữ liệu NET cho DB2

Trình cung cấp dữ liệu NET cho DB2 mở rộng sự hỗ trợ DB2 cho các giao diện ADO.NET và mang lại hiệu suất cao, truy cập an toàn tới dữ liệu DB2 DB2 cho Windows bao gồm ba trình cung cấp dữ liệu NET:

Trình cung cấp dữ liệu DB2 NET: Một trình cung cấp dữ liệu ADO.NET

được quản lý, có hiệu suất cao Đây là trình cung cấp dữ liệu ADO.NET được khuyến khích sử dụng với họ các cơ sở dữ liệu DB2 Việc truy cập cơ sở dữ liệu ADO.NET bằng cách sử dụng Trình cung cấp dữ liệu DB2 NET có ít hạn chế hơn

và cung cấp hiệu năng cao hơn so với các trình cung cấp dữ liệu cầu nối NET OLE DB và NET ODBC

Trình cung cấp dữ liệu NET OLE DB: Một trình cung cấp dữ liệu cầu

nối để cung cấp các yêu cầu ADO.NET cho trình cung cấp OLE DB của IBM (qua

mô đun interop của COM) Trình cung cấp dữ liệu NET này không được khuyến

Trang 6

khích để truy cập vào các cơ sở dữ liệu họ DB2 Trình cung cấp dữ liệu DB2 NET

là trình cung cấp dữ liệu nhanh hơn và có nhiều tính năng phong phú hơn

Trình cung cấp dữ liệu NET ODBC: Một trình cung cấp dữ liệu cầu nối

để cung cấp các yêu cầu ADO.NET cho trình điều khiển (driver) IBM ODBC Trình cung cấp dữ liệu NET này không được khuyến khích để truy cập vào các cơ

sở dữ liệu họ DB2 Trình cung cấp dữ liệu DB2 NET là trình cung cấp dữ liệu nhanh hơn và có nhiều tính năng phong phú hơn

Để phát triển và chạy các ứng dụng có sử dụng Trình cung cấp dữ liệu DB2 NET, bạn cần NET Framework phiên bản 1.1 hoặc 2.0 .NET Framework phiên bản 1.0

và Visual Studio NET 2002 không được hỗ trợ để sử dụng với Trình cung cấp dữ liệu DB2 NET của DB2 9

Kết nối đến một cơ sở dữ liệu

Trong phần này, bạn sẽ tìm hiểu làm thế nào để kết nối đến một cơ sở dữ liệu DB2

từ một ứng dụng NET

Tạo một kết nối khi sử dụng Trình cung cấp dữ liệu NET DB2

Khi bạn đang sử dụng Trình cung cấp dữ liệu DB2 NET, bạn có thể thiết lập một kết nối cơ sở dữ liệu thông qua lớp DB2Connection Trước tiên, bạn phải tạo một chuỗi ký tự để lưu trữ các tham số kết nối Dưới đây là một ví dụ về một chuỗi ký

tự kết nối có thể dùng::

String connectString = "Database=SAMPLE";

Trang 7

Khi chuỗi này được sử dụng, nó cố gắng để kết nối vào cơ sở dữ liệu SAMPLE:

Liệt kê 1 Chuỗi kết nối

String cs =

"Server=draco:50000;Database=SAMPLE;UID=db2admin;PWD=1a2b3c4d; Connect Timeout=30";

// When used, attempts to connect to the SAMPLE database on the server

// 'draco' through port 50000 using 'db2admin' and '1a2b3c4d' as the user id

// and password respectively If the connection attempt takes more than

thirty

// seconds, the attempt will be terminated and an error will be generated

Trang 8

Để tạo kết nối cơ sở dữ liệu, hãy chuyển connectString đến hàm tạo của lớp

DB2Connection Sau đó, sử dụng phương thức Open() của đối tượng

DB2Connection để chính thức kết nối vào cơ sở dữ liệu được xác định trong

connectString

Đây là cách làm thế nào để bạn kết nối đến một cơ sở dữ liệu bằng C#:

Liệt kê 2 Kết nối đến một cơ sở dữ liệu bằng C#

String connectString = "Database=SAMPLE";

DB2Connection conn = new

Trang 9

Phiên bản 2.0 của NET framework đưa ra một vùng tên được gọi là

System.Data.Common; vùng tên này đưa ra một bộ các lớp cơ bản có thể được chia sẻ bởi bất kỳ trình cung cấp dữ liệu NET nào Điều này tạo điều kiện thuận lợi cho một cách tiếp cận phát triển ứng dụng cơ sở dữ liệu ADO.NET đặc trưng chung, đưa ra một giao diện lập trình không đổi Các lớp chính trong Trình cung cấp dữ liệu DB2 NET với NET Framework 2.0 được thừa kế từ các lớp cơ sở System.Data.Common Kết quả là, các ứng dụng ADO.NET đặc trưng chung làm việc với các cơ sở dữ liệu DB2 thông qua Trình cung cấp dữ liệu.NET DB2 Mã C# dưới đây giải thích một cách tiếp cận đặc trưng chung để thiết lập một kết nối

Trang 10

conn.Open();

Đối tượng DbProviderFactory là điểm bắt đầu của bất kỳ ứng dụng ADO.NET đặc trưng chung nào Đối tượng này tạo ra các cá thể đặc trưng chung của các đối tượng trình cung cấp dữ liệu NET, chẳng hạn như các kết nối, các bộ thích ứng dữ liệu (data adapter), các lệnh và các bộ đọc dữ liệu, sẽ làm việc với một sản phẩm

cơ sở dữ liệu cụ thể Trong trường hợp của ví dụ trong Liệt kê 3, chuỗi

IBM.Data.DB2 được chuyển vào trong phương thức GetFactory() xác định Trình cung cấp dữ liệu NET DB2 duy nhất và các kết quả trong việc khởi tạo của một

cá thể DbProviderFactory để tạo ra các cá thể đối tượng của trình cung cấp cơ sở

dữ liệu cụ thể cho Trình cung cấp cơ sở dữ liệu DB2 NET Đối tượng

DbConnection có thể kết nối đến các cơ sở dữ liệu họ DB2, đúng như một đối tượng DB2Connection, nó thực sự được thừa kế từ DbConnection, là có thể thực hiện được

Khi sử dụng lớp DbConnectionStringBuilder, bạn có thể xác định các từ khóa của chuỗi kết nối cho một trình cung cấp dữ liệu và tạo ra một chuỗi kết nối tùy chỉnh của khách hàng Mã trong Liệt kê 3 kiểm tra để xem liệu một từ khóa có tên là

database có tồn tại trong Trình cung cấp dữ liệu DB2 NET không; nếu có mặt

một từ khóa có mặt, mã lệnh tạo ra một chuỗi kết nối để kết nối vào cơ sở dữ liệu SAMPLE

Tạo nhóm kết nối (pooling)

Trang 11

Khi một kết nối đầu tiên được mở dựa vào một cơ sở dữ liệu DB2, một nhóm kết nối sẽ được tạo ra Khi các kết nối được đóng lại, chúng nhập vào nhóm, sẵn sàng

để được các kết nối cần thiết của các ứng dụng khác sử dụng Trình cung cấp dữ liệu DB2 NET cho phép tạo nhóm kết nối theo mặc định Bạn có thể tắt việc tạo nhóm kết nối bằng cách sử dụng cặp từ khóa/ giá trị chuỗi kết nối Pooling=false

Bạn có thể kiểm soát hành vi của nhóm kết nối bằng cách thiết lập các từ khóa trong chuỗi kết nối cho các thuộc tính sau:

 Kích thước nhóm tối đa và tối thiểu (min pool size, max pool size)

 Khoảng thời gian một kết nối có thể ở trạng thái không hoạt động trước khi

nó được trả về nhóm (vòng đời của kết nối - connection lifetime)

 Có hay không đặt trở lại kết nối hiện tại vào trong nhóm kết nối khi nó được đóng lại (thiết lập lại kết nối - connection reset)

Kết nối Cơ sở dữ liệu: Mã mẫu

Liệt kê 4 giải thích làm thế nào để kết nối tới DB2 từ một ứng dụng ADO.NET:

Liệt kê 4 Kết nối tới DB2 từ một ứng dụng ADO.NET

Trang 12

String dbName = "SAMPLE";

String connectString = "Database=" + dbName;

Trang 13

conn = new DB2Connection(connectString);

Trang 14

@set

INCLUDE=%MSVCDir%\ATLMFC\INCLUDE; ;

%FrameworkSDKDir%\include;%INCLUDE%

Trang 15

Di chuyển %INCLUDE%, nó thiết lập đường dẫn %DB2PATH%\INCLUDE, từ cuối danh sách tới tới đầu danh sách, như sau:

@set

INCLUDE=%INCLUDE%;%MSVCDir%\ATLMFC\INCLUDE; ;

%FrameworkSDKDir%\include

Để biên dịch mã, đặt chương trình trong thư mục

%DB2PATH%\samples\.NET\cs, thư mục này có chứa các tập lệnh bldapp.bat Sau đó đưa ra lệnh sau đây:

Trang 16

Đọc và cập nhật dữ liệu với ADO.NET

Trong phần này, bạn sẽ học cách làm thế nào để sử dụng đối tượng ADO.NET DB2Command thực hiện câu lệnh SQL trong một ứng dụng NET Sau khi hoàn tất phần này, bạn sẽ biết:

 Một đối tượng DB2Command là gì

 Làm thế nào để sử dụng phương thức ExecuteReader() để đọc dữ liệu từ DB2

 Làm thế nào để sử dụng phương thức ExecuteNonQuery() để chèn và xóa

dữ liệu

 Làm thế nào để sử dụng phương thức ExecuteScalar() để trả về một giá trị

Đối tượng DB2Command

Một đối tượng DB2Command cho phép bạn chỉ rõ bạn muốn tương tác với DB2 như thế nào Ví dụ, bạn có thể thực hiện các lệnh SELECT, INSERT, MODIFY và DELETE trên dữ liệu trong DB2

Khi sử dụng Trình cung cấp dữ liệu DB2 NET, bạn thực hiện các câu lệnh SQL thông qua một lớp DB2Command khi sử dụng của các phương thức

ExecuteReader() và ExecuteNonQuery() của nó và các thuộc tính CommandText, CommandType và Transaction Với các câu lệnh SQL có tạo ra kết quả đầu ra, bạn nên sử dụng phương thức ExecuteReader(), kết quả của nó có thể được lấy ra

từ một đối tượng DB2DataReader Đối với tất cả các câu lệnh SQL khác, bạn nên

sử dụng phương thức ExecuteNonQuery().Thuộc tính Transaction của đối tượng DB2Command cần được khởi tạo cho một DB2Transaction Một đối tượng

Trang 17

DB2Transaction chịu trách nhiệm về việc khôi phục lại và cam kết các giao dịch

Liệt kê 5 Thực hiện câu lệnh SQL không truy vấn

Trang 18

cmd.CommandText = "SELECT ID, NAME, JOB FROM

STAFF WHERE DEPT = 99";

DB2DataReader reader = cmd.ExecuteReader();

Trang 19

Sau khi ứng dụng của bạn đã thực hiện một giao dịch cơ sở dữ liệu, bạn phải hoặc khôi phục lại nó hoặc cam kết nó Bạn có thể làm điều này khi sử dụng các

phương thức Commit() và Rollback() của một đối tượng DB2Transaction Dưới đây là cách bạn khôi phục lại hoặc cam kết một giao dịch bằng C#:

// assume a DB2Transaction object trans

đã đọc xong đầu ra Liệt kê 7 hiển thị cách đọc một bộ kết quả bằng C# như thế nào:

Liệt kê 7 Đọc một bộ kết quả bằng C#

Trang 21

Thêm các tham số cho một đối tượng DB2Command

Đối với SQL động, bạn cần thêm các tham số cho đối tượng DB2Command và thiết lập các giá trị cho các tham số đó, giống như sau:

Liệt kê 8 Thêm các tham số cho đối tượng DB2Command và thiết lập các giá trị cho các tham số đó

Trang 22

cmd.CommandText = insertStmt;

cmd.Prepare();

// Declare the parameters for the statement

cmd.Parameters.Add("@id", DB2Type.SmallInt); cmd.Parameters.Add("@name", DB2Type.VarChar, 9); cmd.Parameters.Add("@job", DB2Type.Char, 5);

//Set their values and then insert

for (int i = 0; i < 3; i++)

Ngày đăng: 07/08/2014, 09:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm