Lập trình cơ sở dữ liệu với C Sharp - Phần 2
Tải System.Data.SqlClient namespace vào project
Bộkhới tạo: SqlConnection()
1: SqlConnection()
2: SqlConnection(string connectionString)
Khởi tạo một đối tượng mới SqlConnection bằng phát biểu sau:
SqlConnection mySqlConnection = new SqlConnection();
mySqlConnection.ConnectionString =
"server=localhost;database=Northwind;uid=sa;pwd=sa";
serverchỉ định tên máy tính có trinh SqlServer đang chạy.
databasechỉ định tên cơsởdữliệu
uidtên tài khỏan
pwdmã đăn nhập
chú ý : chỉthiết lập connectionString khi đối tượng kết nối của bạn đã đóng
"]
);
myDataSet.Relations.Add(
customersOrdersDataRel
);
// create a DataView object named customersDV
DataView customersDV = new DataView();
customersDV.Table = customersDT;
customersDV.RowFilter = "Country = 'UK'";
customersDV.Sort = "CustomerID";
// display the first row in the customersDV DataView object
Console.WriteLine("Customer:");
for (int count = 0; count < customersDV.Table.Columns.Count; count++)
{
Console.WriteLine(customersDV[0][count]);
}
// create a child DataView named ordersDV that views
// the child rows for the first customer in customersDV
DataView ordersDV = customersDV[0].CreateChildView("CustomersOrders");
// display the child rows in the customersDV DataView object
Console.WriteLine("\nOrderID's of the orders placed by this customer:");
foreach (DataRowView ordersDRV in ordersDV)
{
Console.WriteLine(ordersDRV["OrderID"]);
}
}
}
Đầu ra từ chương trình này như sau:
Customer:
AROUT
Around the Horn
UK
OrderID's of the orders placed by this customer:
10355
10383
10453
10558
10707
10741
10743
10768
10793
10864
10920
10953
11016
LỚP DataViewManager:
Một DataViewManager cho phép bạn tập trung quản lý nhiều đối tượng DataView trong một Dataset. Một
DataViewManager cũng cho phép bạn tạo ra những đối tượng DataView trong thời gian chạy. Bảng 13.6 cho
thấy một số những thuộc tính DataViewManager.
Bảng 13.6: những thuộc tính DataViewManager
Thuộc tính Kiểu dữ liệu Mô tả
DataSet DataSet lấy hay gán Dataset được dùng bởi DataViewManager của bạn.
DataViewSettings DataViewSettingCollection Lấy DataViewSettingCollection cho mỗi DataTable trong
Dataset của bạn. Một DataViewSettingCollection giúp bạn truy
cập đến những thuộc tính của DataView cho mỗi DataTable.
Một trong số những phương thức của DataViewManager là CreateDataView(). Nó tạo ra một DataView mới
cho DataTable được chỉ định. DataTable được chuyển qua như một tham số tới phương thức CreateDataView().
Kiểu trả về của nó là DataView.
Một trong số những sự kiện DataViewManager là ListChanged. Nó phát khởi khi danh sách được quản lý bởi
một DataView trong DataViewManager của bạn thay đổi.Bộ xử lý sự kiện của nó là ListChangedEventHandler.
Tạo ra và sử dụng một Đối tượng DataViewManager
Tạo ra một DataViewManager, Bạn sử dụng một trong số bộ khởi dựng sau đây:
DataViewManager()
DataViewManager(DataSet myDataSet)
Với myDataSet chỉ định Dataset được dùng bởi đối tượng DataViewManager. Nó gán thuộc tính Dataset của
đối tượng DataViewManager mới tới myDataSet.
Chúng ta hãy xemxét một ví dụ về tạo ra và sử dụng một DataViewManager. Giả thiết bạn có một Dataset có
tên myDataSet, có chứa một DataTable được được lưu trú với những hàng từ bảng Customers. Ví dụ sau đây
tạo ra một đối tượng DataViewManager có tên myDVM, MyDataSet chuyển qua tới bộ khởi dựng:
DataViewManager myDVM = new DataViewManager(myDataSet);
Ví dụ kế tiếp thiết đặt những thuộc tính Sort và RowFilter mà sẽ được sử dụng sau đó khi một DataView cho
DataTable Customers được tạo ra :
myDVM.DataViewSettings["Customers"].Sort = "CustomerID";
myDVM.DataViewSettings["Customers"].RowFilter = "Country = 'UK'";
Ghi nhớ : mã trước đây không thật sự tạo ra một DataView; nó đơn thuần gán những thuộc tính của bất kỳ
DataView nào được tạo ra trong tương lai, mà xem những hàng từ DataTable Customers.
Ví dụ sau đây thật sự tạo ra một DataView bởi sự gọi phương thức CreateDataView() của DataViewManager
myDVM, chuyển DataTable customersDT tới CreateDataView():
DataView customersDV = myDVM.CreateDataView(customersDT);
Thuộc tính Sort và RowFilter của DataView customersDV được gán tới CustomerID và Country = ' UK' tương
ứng. Đây là những sự thiết đặt tương tự như những thiết đặt trước đó trong thuộc tính DataViewSettings.
Danh sách 13.4 Trình bày một ví dụ đầy đủ về tạo và sử dụng DataViewManager đã học trong mục này.
Danh sách 13.4 Một : USINGDATAVIEWMANAGER.CS
/*
UsingDataViewManager.cs illustrates the use of a
DataViewManager object
*/
using System;
using System.Data;
using System.Data.SqlClient;
class UsingDataViewManager
{
public static void Main()
{
SqlConnection mySqlConnection =
new SqlConnection(
"server=localhost;database=Northwind;uid=sa;pwd=sa"
);
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText =
"SELECT CustomerID, CompanyName, Country " +
"FROM Customers";
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
mySqlDataAdapter.SelectCommand = mySqlCommand;
DataSet myDataSet = new DataSet();
mySqlConnection.Open();
mySqlDataAdapter.Fill(myDataSet, "Customers");
mySqlConnection.Close();
DataTable customersDT = myDataSet.Tables["Customers"];
// create a DataViewManager object named myDVM
DataViewManager myDVM = new DataViewManager(myDataSet);
// set the Sort and RowFilter properties for the Customers DataTable
myDVM.DataViewSettings["Customers"].Sort = "CustomerID";
myDVM.DataViewSettings["Customers"].RowFilter = "Country = 'UK'";
// display the DataViewSettingCollectionString property of myDVM
Console.WriteLine("myDVM.DataViewSettingCollectionString = " +
myDVM.DataViewSettingCollectionString + "\n");
// call the CreateDataView() method of myDVM to create a DataView
// named customersDV for the customersDT DataTable
DataView customersDV = myDVM.CreateDataView(customersDT);
// display the rows in the customersDV DataView object
foreach (DataRowView myDataRowView in customersDV)
{
for (int count = 0; count < customersDV.Table.Columns.Count; count++)
{
Console.WriteLine(myDataRowView[count]);
}
Console.WriteLine("");
}
}
}
Đầu ra của chương trình này như sau:
myDVM.DataViewSettingCollectionString =
<Customers Sort="CustomerID" RowFilter="Country = 'UK'"
RowStateFilter="CurrentRows"/>
AROUT
Around the Horn
UK
BSBEV
B's Beverages
UK
CONSH
Consolidated Holdings
UK
EASTC
Eastern Connection
UK
ISLAT
Island Trading
UK
NORTS
North/South
UK
SEVES
Seven Seas Imports
UK
TẠO MỘT DataView SỬ DỤNG Visual Studio .NET:
Trong mục này, bạn sẽ học cách tạo ra một DataView như thế nào sử dụng Visual Studio .NET (VS .NET).
Bạn có thể theo những bước được mô tả trong mục này:
1. Mở VS .NET và tạo ra một ứng dụng Windows mới đặt tên myDataView.
2. hiển thị Server Explorer, kết nối tới cơ sở dữ liệu Northwind của bạn, và sự kéo bảng Customers tới
form của bạn. Việc này tạo ra một đối tượng SqlConnection có tên sqlConnection1 và một đối tượng
SqlDataAdapter có tên sqlDataAdapter1. Những đối tượng này được đặt trong khay bên dưới form của
bạn.
3. Thay đổi thuộc tính ConnectionString của sqlConnection1 để kết nối tới cơ sở dữ liệu Northwind của
bạn. Nhớ thêm một chuỗi con chứa mật khẩu ( Pwd= sa, hay tương tự).
4. Kích vào đối tượng sqlDataAdapter1 trong form của bạn, và rồi kích liên kết Generate Dataset tại đáy
của cửa sổ những thuộc tính cho sqlDataAdapter1. Chấp nhận những mặc định trong hộp thoại, và kích
nút Ok để tạo ra một đối tượng Dataset có tên dataSet11.
5. Kéo một đối tượng DataView từ tab Data của Toolbox đến form của bạn. Việc này tạo ra một đối
tượng DataView có tên dataView1.
6. Gán thuộc tính Table của đối tượng dataView1 của bạn tới dataSet11.Customers sử dụng danh sách
sổ xuống ở bên phải của thuộc tính Table; đặt thuộc tính RowFilter tới Country =' UK'; và đặt thuộc tính
Sort tới CustomerID. xem Hình 13.1.
Thiết đặt những thuộc tính của DataView1
7. Kéo một điều khiển DataGrid từ những tab Windows Form của Toolbox đến form của bạn. Việc này
tạo ra một đối tượng DataGrid có tên dataGrid1.
8. Gán thuộc tính DataSource của dataGrid1 tới dataView1 sử dụng danh sách sổ xuống ở bên phải của
thuộc tính DataSource, như trong Hình 13.2. Điều này kết buộc dữ liệu được cất giữ trong dataView1
vào dataGrid1 và cho phép dataGrid1 truy cập bất kỳ dữ liệu nào được cất giữ trong dataView1.
Hình 13.2: gán những thuộc tính của dataGrid1
9. Chọn View - Code và gán phương thức Form1() của form của bạn với mã sau
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
// call the Fill() method of sqlDataAdapter1
// to populate dataSet11 with a DataTable named
// Customers
sqlDataAdapter1.Fill(dataSet11, "Customers");
}
Biên dịch và chạy form của bạn bằng cách nhấn Ctrl + F5. Hình 13.3 cho thấy sự vận hành của form. Chú ý
thông tin trong form đến từ DataView mà bạn đã tạo ra.
TÓM TẮT:
Trong chương này, bạn đã học cách sử dụng những đối tượng DataView để lọc và sắp xếp những hàng như thế
nào. Lợi thế của một DataView là bạn có thể kết buộc nó tới một thành phần trực quan như một điều khiển
DataGrid.
Một DataView cất giữ những bản sao của những hàng trong một DataTable như những đối tượng
DataRowView. Những đối tượng DataRowView cung cấp sự truy cập tới những đối tượng DataRow nằm bên
dưới trong một DataTable. Bởi vậy, khi bạn khảo sát và sửa đổi nội dung của một DataRowView, tức là bạn
thật sự đang làm việc với DataRow nằm bên dưới.
Thuộc tính RowFilter của một DataView tương tự như một mệnh đề WHERE trong một phát biểu SELECT.
Do đó bạn có thể sử dụng những biểu thức lọc rất mạnh trong DataView của bạn. Ví dụ, bạn có thể sử dụng
AND, OR, NOT, IN, LIKE,những toán tử so sánh, những toán tử số học, những ký tự đại diện (* và %) và
những chức năng tổng thể.
Bạn có thể tìm thấy chỉ số của một DataRowView trong một DataView sử dụng phương thức Find() của một
DataView. Bạn cũng có thể lấy một mảng của những đối tượng DataRowView sử dụng phương thức
FindRows() của một DataView.
Một DataViewManager cho phép bạn tập trung quản lý nhiều đối tượng DataView trong một Dataset. Một
DataViewManager cũng cho phép bạn tạo ra những đối tượng DataView trong thời gian chạy.
File đính kèm:
Lập trình cơ sở dữ liệu với C Sharp - Phần 2.pdf

