Danh sách 5.1 cho thấy một chương trình đầy đủ sử dụng những bước này. Chương trình này có tên SelectIntoDataSet.cs và được định vị trong thư mục ch05.
Danh sách 5.1: SELECTINTODATASET.CS /*
SelectIntoDataSet.cs illustrates how to perform a SELECT statement and store the returned rows in a DataSet object
*/ using System; using System.Data; using System.Data.SqlClient; class SelectIntoDataSet {
public static void Main() {
// step 1: formulate a string containing the details of the // database connection
string connectionString =
"server=localhost;database=Northwind;uid=sa;pwd=sa"; // step 2: create a SqlConnection object to connect to the // database, passing the connection string to the constructor SqlConnection mySqlConnection =
new SqlConnection(connectionString);
// step 3: formulate a SELECT statement to retrieve the // CustomerID, CompanyName, ContactName, and Address // columns for the first ten rows from the Customers table string selectString =
"FROM Customers " + "ORDER BY CustomerID";
// step 4: create a SqlCommand object to hold the SELECT statement SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); // step 5: set the CommandText property of the SqlCommand object to // the SELECT string
mySqlCommand.CommandText = selectString; // step 6: create a SqlDataAdapter object
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(); // step 7: set the SelectCommand property of the SqlAdapter object // to the SqlCommand object
mySqlDataAdapter.SelectCommand = mySqlCommand; // step 8: create a DataSet object to store the results of // the SELECT statement
DataSet myDataSet = new DataSet();
// step 9: open the database connection using the // Open() method of the SqlConnection object mySqlConnection.Open();
// step 10: use the Fill() method of the SqlDataAdapter object to // retrieve the rows from the table, storing the rows locally // in a DataTable of the DataSet object
Console.WriteLine("Retrieving rows from the Customers table"); mySqlDataAdapter.Fill(myDataSet, "Customers");
// step 11: close the database connection using the Close() method // of the SqlConnection object created in Step 1
mySqlConnection.Close();
// step 12: get the DataTable object from the DataSet object DataTable myDataTable = myDataSet.Tables["Customers"]; // step 13: display the columns for each row in the DataTable, // using a DataRow object to access each row in the DataTable foreach (DataRow myDataRow in myDataTable.Rows) { Console.WriteLine("CustomerID = "+ myDataRow["CustomerID"]); Console.WriteLine("CompanyName = "+ myDataRow["CompanyName"]); Console.WriteLine("ContactName = "+ myDataRow["ContactName"]); Console.WriteLine("Address = "+ myDataRow["Address"]); } } }
Đầu ra từ chương trình này như sau:
Retrieving rows from the Customers table CustomerID = ALFKI
CompanyName = Alfreds Futterkiste ContactName = Maria Anders
Address = Obere Str. 57 CustomerID = ANATR
CompanyName = Ana Trujillo Emparedados y helados ContactName = Ana Trujillo
Address = Avda. de la Constitución 2222 CustomerID = ANTON
CompanyName = Antonio Moreno Taquería ContactName = Antonio Moreno
Address = Mataderos 2312 CustomerID = AROUT
CompanyName = Around the Horn ContactName = Thomas Hardy Address = 120 Hanover Sq. CustomerID = BERGS
CompanyName = Berglunds snabbköp ContactName = Christina Berglund Address = Berguvsvägen 8
CustomerID = BLAUS
CompanyName = Blauer See Delikatessen ContactName = Hanna Moos
Address = Forsterstr. 57 CustomerID = BLONP
CompanyName = Blondesddsl père et fils ContactName = Frédérique Citeaux Address = 24, place Kléber
CustomerID = BOLID
CompanyName = Bólido Comidas preparadas ContactName = Martín Sommer
Address = C/ Araquil, 67 CustomerID = BONAP CompanyName = Bon app'
ContactName = Laurence Lebihan Address = 12, rue des Bouchers CustomerID = BOTTM
CompanyName = Bottom-Dollar Markets ContactName = Elizabeth Lincoln
Address = 23 Tsawassen Blvd.
Tóm lược
Trong chương này, bạn đã có một tổng quan về những lớp ADO.NET , và bạn đã khảo sát một chương trình
đầy đủ kết nối tới một cơ sở dữ liệu, cất giữ những hàng cục bộ, ngắt kết nối cơ sở dữ liệu, và đọc nội dung của những hàng cục bộ này trong khi ngắt kết nối với cơ sở dữ liệu.
ADO.NET cho phép bạn tương tác trực tiếp với một cơ sở dữ liệu sử dụng những đối tượng của những lớp managed provider (nhà cung cấp được quản lý). Những đối tượng này cho phép bạn kết nối tới cơ sở dữ liệu và thực hiện những câu lệnh SQL trong khi kết nối trực tiếp tới cơ sở dữ liệu. Bạn sử dụng những tập hợp khác nhau của những lớp managed provider , phụ thuộc vào cơ sở dữ liệu Bạn sử dụng.
ADO.NET cũng cho phép bạn làm việc trong một trạng thái không kết nối. Khi làm điều này, bạn lưu trữ thông tin từ một cơ sở dữ liệu vào trong bộ nhớ của máy tính trên đó chương trình của bạn đang chạy. Bạn lưu giữ
thông tin này sử dụng những đối tượng của những lớp Dataset.
Một số lớp "bộ cung cấp có quản lý SQL Server" bao gồm : SqlConnection, SqlCommand, SqlDataReader, SqlDataAdapter, và SqlTransaction. Bạn sử dụng một đối tượng của lớp SqlConnection để kết nối tới một cơ sở
SQL hay sự gọi thủ tục lưu trữ mà bạn sẽ thực thi. Bạn sử dụng một đối tượng của lớp SqlDataReader đểđọc những hàng truy xuất được từ một cơ sở dữ liệu Máy chủ phục vụ SQL. Bạn sử dụng một đối tượng của lớp SqlDataAdapter để dời chuyển những hàng giữa một đối tượng Dataset và một cơ sở dữ liệu Máy chủ phục vụ
SQL.
Bạn sử dụng một đối tượng của lớp Dataset đểđại diện cho một bản sao cục bộ của thông tin được cất giữ trong một cơ sở dữ liệu. Bạn cũng có thể sử dụng một đối tượng Dataset đểđại diện cho dữ liệu XML. Vài đối tượng bạn có thể cất giữ trong một Dataset bao gồm những đối tượng : DataTable, DataRow, DataColumn,
DataRelation, và DataView .
Trong Chương 6, bạn sẽ học sử dụng Visual Studio .NET như thế nào để tạo ra những chương trình Windows.