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

Các giải pháp lập trình CSharp- P53 pptx

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 (2.6 MB, 10 trang )

411
Chương 10: Cơ sở dữ liệu
// Tạo và cấu hình câu lệnh mới có chứa FOR XML AUTO.
SqlCommand com = con.CreateCommand();
com.CommandType = CommandType.Text;
com.CommandText =
"SELECT CustomerID, CompanyName FROM Customers FOR XML AUTO";
// Mở kết nối cơ sở dữ liệu.
con.Open();
// Load dữ liệu XML vào XmlDocument. Cần phải tạo trước một
// phần tử gốc để có thể đặt mỗi phần tử hàng kết quả vào đó.
XmlReader reader = com.ExecuteXmlReader();
doc.LoadXml("<results></results>");
// Tạo XmlNode từ phần tử XML kế tiếp (được đọc từ reader).
XmlNode newNode = doc.ReadNode(reader);
while (newNode != null) {
doc.DocumentElement.AppendChild(newNode);
newNode = doc.ReadNode(reader);
}
}
// Xử lý XmlDocument đã ngắt kết nối.
Console.WriteLine(doc.OuterXml);
§
7.
7.
Nh n bi t t t c các th hi n SQL Server 2000 trên m ngậ ế ấ ả ể ệ ạ
Nh n bi t t t c các th hi n SQL Server 2000 trên m ngậ ế ấ ả ể ệ ạ


Bạn cần lấy danh sách tất cả các thể hiện của
SQL Server 2000


có thể truy xuất
được trên mạng.


Sử dụng
COM Interop
để truy xuất chức năng của
Microsoft SQLDMO Object
Library
. Tạo một đối tượng
Application
rồi gọi phương thức
ListAvailableSQLServers
của nó.
ListAvailableSQLServers
sẽ trả về đối tượng
NameList
, là một tập hợp chứa tên của mỗi đối tượng
SQL Server 2000
được tìm
thấy trên mạng.
412
Chương 10: Cơ sở dữ liệu
Thư viện lớp .NET Framework không có chức năng tìm các SQL Server chưa biết; tuy nhiên,
công việc này không mấy khó khăn với Microsoft SQLDMO Object Library (được truy xuất
qua COM Interop). Mục 15.6 sẽ trình bày chi tiết cách tạo một Interop Assembly thực hiện
việc truy xuất đến một thành phần COM. Nếu đang sử dụng Microsoft Visual Studio .NET,
bạn hãy thêm một tham chiếu đến Microsoft SQLDMO Object Library được liệt kê trong thẻ
COM của hộp thoại Add Reference (xem hình 10.1).
Hình 10.1

Chọn Microsoft SQLDMO Object Library trong hộp thoại Add Reference
Nếu không có Visual Studio .NET, bạn hãy sử dụng Type Library Importer (tlbimp.exe) để tạo
một Interop Assembly cho file sqldmo.dll (thường nằm trong thư mục \Program
Files\Microsoft SQL Server\80\Tools\Binn).

Có một vấn đề đã được tìm thấy trong bản gốc
SQLDMO Object Library
. Để có
thể chạy được dự án này, bạn cần phải cài đặt
SQL Server Service Pack 2
hoặc
mới hơn.
Giả sử bạn sử dụng các thiết lập mặc định khi tạo Interop Assembly cho mình, trước hết bạn
cần nhập không gian tên
SQLDMO
. Để lấy được danh sách các SQL Server đang có hiệu lực, bạn
hãy tạo một đối tượng
SQLDMO.Application
và gọi phương thức
ListAvailableSQLServers
của
nó. Mỗi chuỗi trong đối tượng trả về
SQLDMO.NameList
là tên của một SQL Server đang có hiệu
lực. Bạn có thể sử dụng các tên này trong chuỗi kết nối hoặc hiển thị chúng trong một danh
413
Chương 10: Cơ sở dữ liệu
sách cho người dùng chọn. Ví dụ dưới đây sẽ hiển thị tên của tất cả các SQL Server có thể
truy xuất được trong cửa sổ Console:
using System;

using SQLDMO;
public class SQLDMOExample {
public static void Main() {
// Thu lấy danh sách tất cả các SQL Server có hiệu lực.
SQLDMO.Application app = new SQLDMO.Application();
SQLDMO.NameList names = app.ListAvailableSQLServers();
// Xử lý tập hợp NameList.
if (names.Count == 0) {
Console.WriteLine("No SQL Servers visible on the network.");
} else {
// Hiển thị danh sách các SQL Server có hiệu lực.
Console.WriteLine("SQL Servers visible : " + names.Count);
foreach (string name in names) {
Console.WriteLine(" Name : " + name);
}
}
Console.ReadLine();
}
}
8.
8.
Đ c file Excel v i ADO.NETọ ớ
Đ c file Excel v i ADO.NETọ ớ


Bạn muốn thu lấy hay chèn dữ liệu vào một tài liệu
Microsoft Excel
bằng
ADO.NET
.



Sử dụng
ODBC .NET provider
kết hợp với
Microsoft Excel ODBC Driver
.
414
Chương 10: Cơ sở dữ liệu
Không có OLE DB provider hay provider được-quản-lý nào cho Excel. Tuy nhiên, bạn có thể
sử dụng Microsoft Excel ODBC Driver (được cài đặt mặc định cùng với Excel) kết hợp với
ODBC .NET provider (đi kèm với .NET Framework 1.1 và Visual Studio .NET 2003).
Trong chuỗi kết nối, bạn cần chỉ định driver mà bạn đang sử dụng và tên file Excel. Ví dụ
dưới đây chỉ đến file test.xls trong thư mục startup của ứng dụng:
private string ConnectionString = "Driver={Microsoft Excel Driver
(*.xls)};DriverId=790;Dbq=" + Application.StartupPath + "\\test.xls;";
Sau khi kết nối, bạn có thể thực hiện hai kiểu thao tác:
SELECT
hay
INSERT
. Thay vì sử dụng
bảng, bạn chọn hay chèn dựa vào tên sheet. Tên sheet phải kết thúc bằng dấu đô la (
$
) và được
đặt trong dấu ngoặc vuông (nếu không, sẽ sinh ra lỗi cú pháp). Định dạng bị bỏ qua, và hàng
đầu tiên tự động được sử dụng làm các tên cột.
Ví dụ dưới đây trích và hiển thị tất cả các hàng trong Sheet1. Hình 10.2 là file Excel gốc. Hình
10.3 là dữ liệu được trình bày trên form.
private void ExcelView_Load (System.Object sender, System.EventArgs e)
{

OdbcConnection Con = new OdbcConnection(ConnectionString);
OdbcDataAdapter Adapter = new OdbcDataAdapter("SELECT * FROM [Sheet1$]",
Con);
DataSet Ds = new DataSet();
try
{
Con.Open();
Adapter.Fill(Ds, "Sheet1");
}
catch (Exception Err)
{
MessageBox.Show(Err.ToString());
}
finally
{
Con.Close();
}
grid.DataSource = Ds.Tables["Sheet1"];
}
415
Chương 10: Cơ sở dữ liệu
Hình 10.2
File Excel gốc
Hình 10.3
Dữ liệu Excel
trong ứng dụng .NET

Một cách tiếp cận khác là sử dụng
Automation
để vận hành

Excel
thông qua các
giao diện
COM
do nó cung cấp. Cách này đòi hỏi bạn sử dụng
COM Interop

các đối tượng của
Excel
, và chỉ làm việc khi
Excel
đã được cài đặt trên máy tính.
Tuy vậy, nó cung cấp rất nhiều chức năng cho việc tương tác với dữ liệu bảng
tính.
9.
9.
S d ng Data Form Wizardử ụ
S d ng Data Form Wizardử ụ


Bạn muốn xây dựng một ứng dụng cơ sở dữ liệu với đầy đủ chức năng nhưng
không phải viết bất cứ dòng mã nào.


Sử dụng
Data Form Wizard
.
Để sử dụng Data Form Wizard, bạn hãy thực hiện các bước dưới đây:
1. Tạo một dự án mới, chọn mẫu Empty Project. Đặt tên dự án là DataFormWiz. Nhắp
OK.

2. Từ thanh trình đơn chính của IDE, chọn Project | Add New Item để hiển thị hộp thoại
Add New Item (xem hình 10.4).
416
Chương 10: Cơ sở dữ liệu
Hình 10.4
Hộp thoại Add New Item
3. Chọn Data Form Wizard, và giữ nguyên tên mặc định DataForm1.cs. Nhắp Open để
thêm Data Form Wizard vào dự án. Ngay khi bạn nhắp Open, Data Form Wizard sẽ
khởi chạy. Nhắp Next.
4. Đặt tên cho tập dữ liệu mới là dsDataWizard (xem hình 10.5). Nhắp Next.
Hình 10.5
Tạo một tập dữ liệu mới với tên là dsDataWizard
417
Chương 10: Cơ sở dữ liệu
5. Tạo một kết nối mới bằng cách nhắp nút New Connection (xem hình 10.6).
Hình 10.6
Nhắp nút New Connection để tạo kết nối mới
6. Kết nối đến cơ sở dữ liệu Northwind của SQL Server trong hộp thoại Data Link
Properties (xem hình 10.7). Nhắp OK.

418
Chương 10: Cơ sở dữ liệu
Hình 10.7
Hộp thoại Data Link Properties
419
Chương 10: Cơ sở dữ liệu
7. Chọn kết nối vừa tạo (xem hình 10.8). Nhắp Next.
Hình 10.8
Chọn kết nối Northwind vừa mới tạo
8. Thêm bảng Categories và Products vào danh sách Selected Item(s) (xem hình 10.9).

Nhắp Next.
420
Chương 10: Cơ sở dữ liệu
Hình 10.9
Thêm bảng Categories và Products
9. Chúng ta cần đặt tên cho quan hệ giữa các bảng. Gõ CategoriesProducts vào hộp
Name. Categories là bảng cha với khóa chính là CategoryID. Products là bảng con với
khóa ngoại là CategoryID (xem hình 10.10). Nhắp nút > để thêm quan hệ này vào hộp
Relations bên phải. Nhắp Next.

×