Tải bản đầy đủ (.pdf) (42 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (219.9 KB, 42 trang )

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.


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.
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)
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.
Đố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
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";



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.



Để 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
DB2Connection(connectString);
conn.Open();
return conn;




Tạo một kết nối với các lớp cơ sở chung ADO.NET
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
cơ sở dữ liệu:


Liệt kê 3. Thiết lập một kết nối cơ sở dữ liệu

DbProviderFactory factory =
DbProviderFactories.GetFactory("IBM.Data.DB2");
DbConnection conn = factory.CreateConnection();
DbConnectionStringBuilder sb =
factory.CreateConnectionStringBuilder();
if( sb.ContainsKey( "Database" ) ) { sb.Remove(
"database" );
sb.Add( "database", "SAMPLE" ); }
conn.ConnectionString = sb.ConnectionString;
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)
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


using System;
using System.Data;
using System.IO;
using IBM.Data.DB2;



class ConnDb
{
public static void Main(String[] args)
{
DB2Connection conn = null;

try
{
String dbName = "SAMPLE";
String connectString = "Database=" + dbName;

conn = new DB2Connection(connectString);

//Connecting to the database
conn.Open();

Console.WriteLine("Connected to the " + dbName + "
database");
}
catch (Exception e )
{
Console.WriteLine(e.Message);
}
finally
{
//Close the connection
if (conn != null)
{
conn.Close();

}
}
}

}


Trước khi bạn có thể biên dịch chương trình, bạn phải bảo đảm rằng biến môi
trường INCLUDE có chứa thư mục %DB2PATH%\INCLUDE như là thư mục
đầu tiên. Để làm điều này, cập nhật các tệp tin thiết lập môi trường cho Microsoft
Visual C/C++ .NET, mà bạn có thể tìm thấy tại C:\Program Files\Microsoft Visual
Studio .NET\Common7\Tools\vsvars32.bat. Tệp tin này có chứa các lệnh sau:
@set
INCLUDE=%MSVCDir%\ATLMFC\INCLUDE; ;
%FrameworkSDKDir%\include;%INCLUDE%


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\INC
LUDE; ;
%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:
bldapp ConnDb



Để chạy chương trình, đưa ra lệnh sau đây:
ConnDb



Đọ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
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
cơ sở dữ liệu.

Các đối tượng DB2Command được tạo ra bằng cách sử dụng phương thức
DB2Connection.CreateCommand(). Dưới đây là một ví dụ:
DB2Command cmd;

//assume conn is a DB2Connection object
cmd = conn.createCommand();

Để thực hiện một câu lệnh SQL INSERT, UPDATE hoặc DELETE từ một đối
tượng DB2Command, thiết lập CommandContext cho câu lệnh SQL và gọi
phương thức cmd.ExecuteNonQuery(). Ví dụ:

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

// assume a DB2Connection conn
DB2Command cmd = conn.CreateCommand();
DB2Transaction trans = conn.BeginTransaction();
cmd.Transaction = trans;
cmd.CommandText = "INSERT INTO STAFF
(ID,NAME,DEPT,JOB)
VALUES (401, 'Peter', 99,'Mgr')";
cmd.ExecuteNonQuery();

Để thực hiện một truy vấn từ một đối tượng DB2Command, hãy thiết lập
CommandContext cho truy vấn và gọi phương thức cmd.ExecuteReader():

Liệt kê 6. Thực hiện truy vấn

// assume a DB2Connection conn
DB2Command cmd = conn.CreateCommand();
DB2Transaction trans = conn.BeginTransaction();

cmd.Transaction = trans;
cmd.CommandText = "SELECT ID, NAME, JOB FROM
STAFF WHERE DEPT = 99";
DB2DataReader reader = cmd.ExecuteReader();

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
trans.Rollback();

trans.Commit();

Để phân tích cú pháp các bộ kết quả, sử dụng một đối tượng DB2DataReader. Sử
dụng Read() để tiến đến hàng tiếp theo của bộ kết quả, sau đó, sau mỗi lần tìm
nạp, hãy lấy ra các giá trị cột bằng cách sử dụng các phương thức áp dụng cho
kiểu dữ liệu. Các phương thức GetString(), GetInt32(), GetDecimal() và v.v (có
các phương thức tương tự cho các kiểu dữ liệu có sẵn khác) được sử dụng để trích
xuất dữ liệu từ các cột riêng lẻ của đầu ra. Phương thức DB2DataReader.Close()
được sử dụng để đóng DB2DataReader; bạn nên luôn luôn làm điều này khi bạn
đã đọ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#

// assume a DB2DataReader reader
Int16 id = 0;
String name = "";
string job = "";


// Output the results of the query
while(reader.Read())
{
id = reader.GetInt16(0);
name = reader.GetString(1);
job = reader.GetString(2);

Console.WriteLine(" " + id + " " + name + " " + job);
}

reader.Close();



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ố đó

String insertStmt = "INSERT INTO STAFF
(ID,NAME,DEPT,JOB) VALUES (?, ?, 99, ?)";
String [,] staff =
{{"Smyth","LW"},{"Hesky","RW"},{"Peter","CLK"}};

//Assume conn is a DB2Connection object
DB2Command cmd = conn.CreateCommand();
trans = conn.BeginTransaction();

cmd.Transaction = trans;
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++)
{
cmd.Parameters["@id"].Value = 401 + i;
cmd.Parameters["@name"].Value = staff[i,0];
cmd.Parameters["@job"].Value = staff[i,1];

cmd.ExecuteNonQuery();
}



Mã mẫu
Liệt kê 9 minh họa tất cả các khái niệm được thảo luận trong phần này, trong đó
bao gồm:
 Tạo một đối tượng DB2Command.
 Thi hành một câu lệnh INSERT, UPDATE hoặc DELETE.
 Thi hành một truy vấn SQL.
 Phân tích một đối tượng bộ kết quả.

Liệt kê 9. DB2Command: Ứng dụng mẫu



using System;
using System.Data;
using System.IO;
using IBM.Data.DB2;


class AccessSampDb
{
public static void Main(String[] args)
{
DB2Connection conn = null;
DB2Transaction trans = null;
DB2DataReader reader = null;

String insertStmt = "INSERT INTO STAFF
(ID,NAME,DEPT,JOB) VALUES (?, ?, 99, ?)";
String [,] staff =
{{"Smyth","LW"},{"Hesky","RW"},{"Peter","CLK"}};

try
{
String dbName = "SAMPLE";
String connectString = "Database=" + dbName;

conn = new DB2Connection(connectString);

//Connecting to SAMPLE database
Console.Writeline("Connecting to SAMPLE

database");
conn.Open();

DB2Command cmd = conn.CreateCommand();
trans = conn.BeginTransaction();
cmd.Transaction = trans;
cmd.CommandText = insertStmt;
cmd.Prepare();

// Declare the parameters for the statement and set
their value

×