asp.net csdl
4.1.2. Tạo kết nối cơ sở dữ liệu
Các bước cơ bản để thực hiện kết nối với cơ sở dữ liệu như sau:
· Bước 1: Tạo kết nối.
· Bước 2: Mở kết nối dữ liệu.
· Bước 3: Tạo lệnh điều khiển truy vấn SQL.
· Bước 4: Thực thi lệnh.
· Bước 5: Đóng kết nối.
· Bước 6: In kết quả.
Ví dụ minh hoạ tạo kết nối với cơ sở dữ liệu như sau:
using System;
using System.Data;
using System.Data.SqlClient;
public partial class vd1 : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
//Khai báo và khởi tạo biến Connection
SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password=");
//Mở kết nối
cnn.Open();
//Command điều khiển truy vấn sql
SqlCommand cmd = cnn.CreateCommand();
cmd.CommandText = "select HotenKH from Khachhang where MaKH=5"; //lấy về chuỗi giá trị trong cơ sở dữ liệu
string result = (string)cmd.ExecuteScalar();
//đóng kết nối
cnn.Close();
//in giá trị ra màn hình
Response.Write(result);
}
}
4.2. Các Namespace của ADO.NET
4.3. Các đối tượng trong ADO.NET
4.3.1. Đối tượng Connection
Vai trò của đối tượng Connection trong ADO.NET là tạo kết nối giữa ứng dụng với nguồn dữ liệu hay cơ sở dữ liệu.
Các nguồn dữ liệu (Data Provider) mà ADO.NET hỗ trợ gồm:
· System.Data.Oledb: Sử dụng với Access.
· System.Data.SqlClient: Sử dụng với SQLServer.
· System.Data.OcracleClient: Sử dụng với Ocracle.
· Microsoft.Data.Odbc: Dùng cho dạng kết nối thông qua Odbc Connection của hệ điều hành.
· Microsoft.Data.Sqlxml: Dùng cho XML trên SQLServer.
*) Connection String:
Trước khi thực hiện kết nối Connection cần khai báo các thông tin cho Connection thông qua thuộc tính Connection String. Cách khai báo thay đổi tùy thuộc vào Data Provider. Gồm có các thành phần sau:
- Kết nối với Access:
· Provider: Khai báo Data Provider Connection của hệ quản trị cơ sở dữ liệu Access.
· Data Source: Nguồn dữ liệu (*.mdb).
· User ID: Tên người dùng.
· Password: Mật khẩu.
Ví dụ: Tạo kết nối cơ sở dữ liệu với nguồn dữ liệu Access.
using System;
using System.Data;
using System.Data.OleDb;
public partial class VD2 : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
//Khai báo và khởi tạo biến Connection
String + Server.MapPath("~/App_Data/QLBansach.mdb");
OleDbConnection cnn = new OleDbConnection (StrCnn);
//Mở kết nối
cnn.Open();
//Command điều khiển truy vấn sql
OleDbCommand cmd = cnn.CreateCommand();
cmd.CommandText = "select HotenKH from Khachhang where MaKH=2";
//lấy về chuỗi giá trị trong cơ sở dữ liệu
string result = (string)cmd.ExecuteScalar();
//đóng kết nối
cnn.Close();
//in giá trị ra màn hình
Response.Write(result);
}
}
- Kết nối với cơ sở dữ liệu SQLServer:
· Provider: Khai báo Data Provider Connection của hệ quản trị cơ sở dữ liệu SLQServer.
· Data Source: Tên máy cài đặt SQLServer.
· Initial Catalog: Tên cơ sở dữ liệu.
· User ID: Tên người dùng.
· Password: Mật khẩu.
*) Các thuộc tính của Connection:
· Database: Tương ứng với Initial Catalog hay tên cơ sở dữ liệu.
· DataSource: Tương ứng với tên máy SQL hay tên cơ sở dữ liệu.
· Provider: Tương ứng với Provider.
· State: Tình trạng kết nối của Connection với các giá trị:
o Broken: Kết nối đã bị ngắt, chỉ xảy ra sau khi đã kết nối.
o Closed: Kết nối đã đóng.
o Connecting: Đang kết nối.
o Executing: Kết nối đang thực hiện.
o Fetching: Kết nối đang truy xuất dữ liệu.
o Open: Kết nối đang mở.
*) Các phương thức:
· Change DataBase: Thay đổi DataBase làm việc.
· Close: Đóng kết nối đang sử dụng.
· Dispose: Xoá toàn bộ tài nguyên liên quan tới Connection trên vùng nhớ.
· Open: Thực hiện kết nối Connection tới các thông tin đã khai báo trong Connection String.
4.3.2. Đối tượng Command
Sau khi tạo kết nối với nguồn dữ liệu, mọi thao tác với nguồn dữ liệu đó đều được thực hiện thông qua Command. Tùy theo loại Connection đối tượng Command thuộc tên miền như sau:
· System.Data.OleDb.OleDbCommand
· System.Data.SqlClient.SqlCommand
*) Tạo Command
Chúng ta có thể tạo Command thông qua đối tượng Connection bằng cách:
<Loại Command> <Biến Command> As New <Loại Command>;
<Biến Command>.Connection = <Biến Connection>;
<Biến Command>.CommandText = <Lệnh SQL>;
*) Các thuộc tính
· CommandText: Lệnh SQL hay tên Stored Procedure muốn thực hiện trên nguồn dữ liệu.
· CommandType: Giá trị cho biết nội dung CommandText là gì:
o Text: (Măc định) là câu lệnh SQL.
o StoredProcedure: Tên thủ tục.
o TableDirect: Tên Connection của table.
Ví dụ:
SqlCommand cmd As SqlCommand = New SqlCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = “Select* From Khachhang Where MaKH=2”;
*) Thực hiện Command
- Phương thức ExecuteReader: Phương thức này trả về một đối tượng DataReader để đọc dữ liệu mỗi lần một dòng với phương thức Read. DataReader đọc dữ liệu trực tiếp từ nguồn dữ liệu nên phải duy trì kết nối đến khi đọc xong cú pháp.
SqlDataReader <Tên DataReader> As SqlDataReader;
<Tên DataReader> = <Tên Command>.ExecuteReader;
Ví dụ:
SqlDataReader reader As SqlDataReader;
reader = cmd.ExecuteReader;
- Phương thức ExucuteNonQuery: Sử dụng để thực thi các phát biểu T-Sql như: Insert, Update, Delete, Create,…
- Phương thức ExecuteScalar: Trả về từ phát biểu SQL dạng Select chỉ có một cột, một hàng.
4.3.3. Đối tượng DataReader
Là đối tượng truy cập dữ liệu trực tiếp, sử dụng con trỏ phía Server và duy trì kết nối với Server trong suốt quá trình đọc dữ liệu, DataReader thuộc tên miền:
System.data.OleDbDatReader hoặc System.Data.SqlDataRaeder
*) Các thuộc tính
· FieldCout: Số Connectionột trên dòng hiện hành của DataReader.
· IsClosed: Cho biết dataReader đã đóng.
· Item: Giá trị của cột truyền vào. Tham số truyền vào là tên cột hoặc số thứ tự từ 0.
*) Các phương thức
· Close: Đóng DataReader
· GetFieldType: Trả về kiểu dữ liệu của cột truyền vào.
· GetName: Trả về tên của cột truyền vào.
· GetValue: Trả về trị của cột truyền vào.
· Read: Di chuyển đến dòng kế tiếp và trả về True nếu còn dòng để di chuyển, ngược lại trả về False.
Trong khi DataReader đang mở các thao tác dữ liệu trên nguồn dữ liệu đều không thể cho đến khi DataRaeder đóng lại bằng lệnh Close.
4.3.4. Đối tượng DataAdapter
Để lấy dữ liệu từ nguồn dữ liệu về cho ứng dụng, chúng ta sử dụng một đối tượng gọi là DataAdapter. Đối tượng này cho phép ta lấy cấu trúc và dữ liệu của các bảng trong nguồn dữ liệu.
DataAdapte là một bộ gồm 4 đối tượng:
- SelectCommand: Cho phép lấy thông tin từ nguồn dữ liệu về.
- InsertCommand: Cho phép thêm dữ liệu vào bảng trong nguồn dữ liệu.
- UpdateCommand: Cho phép điều chỉnh dữ liệu của bảng trong nguồn dữ liệu.
- DeleteCommand: Cho phép xóa dữ liệu của bảng trong nguồn dữ liệu.
a. Tạo DataAdapter
Khai báo rõ DataAdapter sử dụng theo DataProvider nào: sqlDataAdapter hay OledbDataAdapter hai lớp này thuộc tên miền:
· System.Data.OleDb.OleDbDataAdapter
· System.Data.SqlClient.SqlDataAdapter
*) Cú pháp tạo DataAdapter:
New <Loại>DataAdapter();
New <Loại>DataAdapter(<Đối tượng SelectCommand>);
<Đối tượng SelectCommand>: Có sẵn với nội dung lệnh truy xuất.
New <Loại>DataAdapter(<Lệnh>,<Đối tượng Connection>);
DataAdapter chỉ thao tác với một nguồn dữ liệu qua một đối tượng Connection đang kết nối, khi Connection chưa mở thì DataAdapter sẽ tự động mở kết nối khi cần và đóng lại.
Ví dụ:
OleDbDataAdapter da As New OleDbDataAdapter();
da.SelectCommand.CommandText=”Select * From Sinhvien”;
da.SelectCommand.Connection.ConnectionString=”Provider=MicroSoft.Jet.OleDb.4.0; Data Source=c:\QuanLySV.mdb”;
b. Các thuộc tính của DataAdapter
· DeleteCommand: Đối tượng Command chứa nội dung lệnh hủy các mẫu tin trên nguồn dữ liệu.
· InsertCommand: Đối tượng Command chứa nội dung lệnh thêm các mẫu tin trên nguồn dữ liệu.
· SelectCommand: Đối tượng Command chứa nội dung lệnh truy xuất các mẫu tin trên nguồn dữ liệu.
· UpdateCommand: Đối tượng Command chứa nội dung lệnh sửa các mẫu tin trên nguồn dữ liệu.
c. Các chức năng của DataAdapter
- Lấy dữ liệu từ nguồn: Sử dụng DataAdapter để lấy dữ liệu về cho các đối tượng
· DataTable: Fill(<DataTable>)
· DataSet: Fill(<DataSet>) - Dữ liệu lấy về DataSet dưới dạng các DataTable với tên mặc định là: Table,Table1, Table2…
· Đổ dữ liệu vào Datset cho bảng DataTable nếu chưa có sẽ tạo mới: Fill(<DataSet>,<Tên dataTable>).
- Để cập nhật dữ liệu về nguồn:
· Update(<mảng dòng>): Cập nhật các dòng (Các đối tượng DataRow) vào nguồn dữ liệu.
· Update(<Dataset>): Cập nhật các thay đổi trên tất cả các bảng của Dataset vào nguồn dữ liệu.
· Update(<DataTable>): Cập nhật tất cả các thay đổi trên DataTable vào nguồn dữ liệu.
· Update(<Dataset>,<Tên bảng>): Cập nhật các thay đổi trên bảng trong Dataset vào nguồn dữ liệu…
4.3.5. Đối tượng DataSet
Dataset là một mô hình CSDL quan hệ thu nhỏ đáp ứng nhu cầu của ứng dụng. Dataset chứa các bảng (DataTable) các quanhệ (DataRelation) và các ràng buộc (constraint) Dataset thuộc tên miền: System.Data.Dataset.
a. Khai báo
New System.Data.Dataset()
Hoăc: New System.Data.Dataset(<tên Dataset>)
b. Các phương thức
- Thêm một bảng vào Dataset:
Tables.Add(): Một bảng mới tự động được tạo ra với tên mặc định Table1, Table2 . . . Tables.Addd(<Tên bảng>):Một bảng mới tạo ra theo đúng <tên bảng>
Ghi chú: Tên bảng có phân biệt chữ in, thường
- Xóa bảng ra khỏi Dataset:
Tables.Remove(<Tên bảng>): Xóa bảng ra khỏi tập hợp Table.
- Kiểm tra bảng có thuộc về Dataset:
Tables.Contains(<Tên bảng>)
- Lấy chỉ số của bảng:
Tables.IndexOf(<tên bảng>)
- Lấy số bảng trong Dataset:
Tables.Count
- Lấy ra một bảng trong Dataset:
Tables(<Chỉ số>)
- Để cập nhật các thay đổi trên Dataset:
AcceptChanges()
- Để hủy các thay đổi trên Dataset:
RejectChanges()
- Để xóa bỏ mọi dữ liệu trên DataSet:
Clear()
- Để tạo một bản sau của DataSet:
Clone()
- Để xóa bỏ DataSet: Gọi phương thức Dispone để giải phóng mọi tài nguyên trên vùng nhớ Dataset đang sử dụng.
- Tạo quan hệ giữa hai bảng trong Dataset:
Relations.Add(<DataColumn trên bảng cha>,<Data Column trên bảng con>)
- Xóa quan hệ giữa hai bảng trong Dataset:
Relations.Remove(<quan hệ>)
4.3.6. Đối tượng DataTable
Dữ liệu các bảng trong nguồn dữ liệu được lấy về và đưa vào các DataTable. DataTable thuộc tên miền: System.Data.dataTable.
Cú pháp:
New DataTable();
New DataTable(<Tên bảng>);
DataTable được hình thành từ các DataColumn, DataRow
Bạn đang đọc truyện trên: AzTruyen.Top