ADO.NET - ADO.NET DataAdapter
Sử dụng mô hình phi kết nối DataAdapter
DataAdapter là đối tượng làm trung gian lấy dữ liệu về cho DataSet, để DataSet thực hiện xử lý ngắt kết nối. Do vậy, mặc dù DataAdapter được liệt kê là đối tượng hướng kết nối nhưng thực chất nó phục vụ cho việc ngắt kết nối. Hay nói cách khác, để 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.
Các đối tượng không kết nối (hay các đối tượng chứa dữ liệu) cho phép
– Lưu trữ một bản sao thông tin lấy từ cơ sở dữ liệu.
– Khi đã ngắt kết nối tới cơ sở dữ liệu.
– Đọc các dòng theo thứ tự bất kỳ
– Tìm kiếm, sắp xếp hay trích lọc các dòng một cách linh hoạt.
– Tạo ra các thay đổi trên dữ liệu, sau đó đồng bộ (cập nhật) các thay đổi này vào cơ sở dữ liệu.
Lớp DataAdapter
public class DataAdapter : System.ComponentModel.Component, System.Data.IDataAdapter
Phương thức thiết lập DataAdapter
Phương thức thiết lập | Mô tả |
---|---|
DataAdapter() | Khởi tạo một đối tượng mới. |
DataAdapter(DataAdapter) | Khởi tạo một đối tượng mới từ đối tượng có cùng kiểu. |
Các phương thức
Phương thức | Mô tả |
---|---|
CloneInternals() | Tạo một bản sao. |
Dispose(Boolean) | Dùng để giải phóng tài nguyên |
Fill(DataSet) | Thêm dữ liệu cho DataSet |
FillSchema(DataSet, SchemaType, String, IDataReader) | Thêm một DataTable cho DataSet. |
GetFillParameters() | Lây các tham số từ câu truy vấn. |
ResetFillLoadOption() | Thiết lập lại FillLoadOption về trạng thái mặc định. |
ShouldSerializeAcceptChangesDuringFill() | Xác định liệu thuộc tính AcceptChangesDuringFill có được duy trì hay không. |
ShouldSerializeFillLoadOption() | Xác định liệu thuộc tính FillLoadOption có được duy trì hay không. |
ShouldSerializeTableMappings() | Kiểm tra xem một hoặc nhiều đối tượng DataTableMapping có tồn tại hay không. |
Update(DataSet) | IĐược sử dụng để thực thi câu lệnh INSERT, UPDATE, DELETE . |
Ví dụ
// DataSetDemo.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataSetDemo.aspx.cs"
Inherits="DataSetExample.DataSetDemo" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server" CellPadding="3" BackColor="#DEBA84"
BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellSpacing="2">
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FFF1D4" />
<SortedAscendingHeaderStyle BackColor="#B95C30" />
<SortedDescendingCellStyle BackColor="#F1E5CE" />
<SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>
</form>
</body>
</html>
CodeBehind
using System;
using System.Data.SqlClient;
using System.Data;
namespace DataSetExample
{
public partial class DataSetDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection("data source=.; database=student; integrated security=SSPI"))
{
SqlDataAdapter sde = new SqlDataAdapter("Select * from student", con);
DataSet ds = new DataSet();
sde.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
}
}
Kết quả: