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