Tải bản đầy đủ (.pptx) (26 trang)

SỬ DỤNG OBJECTDATASOUR E CONTROL TRONG ASP.NET

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (767.08 KB, 26 trang )

SỬ DỤNG OBJECTDATASOURCE
CONTROL TRONG ASP.NET
Seminar:
Thực hiện:
Nguyễn Ngọc Phú 09520611
Nguyễn Tấn Phát 09520602
Lê Thế Vinh 09520721
Để kết nối đến cơ sở dữ liệu và hiển thị dữ liệu lên trang web trong ASP.NET, chúng ta
có thể sử dụng các control như GridView, DetailsView… Khi sử dụng các Control này,
chúng ta cần chỉ định được nguồn dữ liệu sẽ lấy từ đâu. Một trong những cách chỉ định
nguồn dữ liệu là sử dụng 2 control là SqlData Source và ObjectDataSource .
Khác với SqlDataSource khi bạn bắt buộc phải chỉ định câu truy vấn SQL ngay trong
control thì ObjectDataSource cho phép bạn sử dụng một phương thức như là
bước trung gian truy cập đến dữ liệu. Đây là kiến trúc lập trình khá phổ biến hiện
nay khi mà người ta muốn tách biệt thành phần truy cập dữ liệu khỏi thành phần
hiển thị nhằm tăng độ linh hoạt cho ứng dụng.
USING OBJECTDATASOURCE CONTROL
Một số ưu điểm của ObjectDataSource :

Mã nguồn của trang web sẽ gọn hơn nhiều so với việc sử dụng
SqlDataSource do không phải chỉ định các câu lệnh SQL dài dòng
ngay trong mã HTML.

Kiến trúc ứng dụng sẽ rõ ràng hơn nhờ tách biệt thành phần hiển
thị và thành phần truy cập dữ liệu. Nếu như có sự thay đổi về dữ
liệu thì chỉ cần sửa trong phương thức lấy dữ liệu mà không cần
chỉnh sửa lại giao diện.

Một phương thức truy cập duy nhất có thể được sử dụng bởi
nhiều O bjectDataSource khác nhau, từ đó tránh trùng lặp mã
nguồn.


USING OBJECTDATASOURCE CONTROL
Thuộc tính
Ý nghĩa
TypeName Tên kiểu đối tượng mà SqlDataSource đại diện
SelectMethod Tên phương thức SqlDataSource gọi khi thực hiện lệnh SELECT trong CSDL
UpdateMethod Tên phương thức SqlDataSource gọi khi thực hiện lệnh UPDATE trong CSDL
InsertMethod Tên phương thức SqlDataSource gọi khi thực hiện lệnh INSERT trong CSDL
DeleteMethod Tên phương thức SqlDataSource gọi khi thực hiện lệnh DELETE trong CSDL
Điều khiển SqlDataSource bao gồm 5 thuộc tính:
Ví dụ:
USING OBJECTDATASOURCE CONTROL
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
TypeName="EditProducts"
SelectMethod="ShowProducts"
UpdateMethod="UpdateProducts">
Có thể dùng ObjectDataSource để Bind vào một Component,
DataReader, DataSet hay Web service để truy suất cũng như
thực hiện các thao tác trên dữ liệu như INSERT, SELECT, UPDATE,
DELETE.
USING OBJECTDATASOURCE CONTROL
I. Binding to a Component
Tạo mới một file LoaiSanPham.cs có class sau:
USING OBJECTDATASOURCE CONTROL
public List<string> GetLoaiSanPham()
{
List<string> LoaiSP = new List<string>();
LoaiSP.Add("RAM");
LoaiSP.Add("MOUSE");
LoaiSP.Add("KEYBOARD");
return LoaiSP;

}
Tạo một ObjectDataSource sử dụng với phương thức vừa tạo bện trên và một
DetailView kết nối với ObjectDataSource.
Bấm F5 để xem kết quả.
II. Binding to a DataReader
USING OBJECTDATASOURCE CONTROL
Tại thanh Menu chọn Website >> Add New Iterm>>Chọn Class>Đặt tên
ShowProducts.cs. Trong Class ShowProducts tạo một class GetProducts như sau:
public SqlDataReader GetProducts()
{

SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\\Banhang.mdf;
Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand("SELECT * FROM SanPham", con);
con.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);

}
II. Binding to a DataReader
USING OBJECTDATASOURCE CONTROL
Tiếp theo tại file Default.aspx chuyển sang màn hình Design, mở ToolBox kéo thả
control ObjectDataSource vào khung design. Click vào Smart Tag chọn Configure Data
Source, khung Configure Data Source sẽ hiện ra.
II. Binding to a DataReader
USING OBJECTDATASOURCE CONTROL
Sau đó tại Tab SELECT >> Choose a method >> Chọn GetProducts(), return
SqlDataReader. Click Finish.
II. Binding to a DataReader
USING OBJECTDATASOURCE CONTROL

Tại ToolBox kéo thả GridView vào khung Design, click vào Smart Tag tại khung Choose
Data Source chọn ObjectDataSource1.
Nhấn F5 để xem kết quả.
II. Binding to a DataSet
USING OBJECTDATASOURCE CONTROL
Ưu điểm của DataReader là sử lý nhanh, nếu chỉ cần xuất ra dữ liệu ta nên cùng nó tuy
nhiên sử dụng DataReader ta không thể thực hiện các thao tác như UPDATE, INSERT,
DELETE. Để có thể thao tác trên CSDL ta dùng DataSet.
II. Binding to a DataSet
USING OBJECTDATASOURCE CONTROL
public static DataSet ShowProducts()
{
string conString =
WebConfigurationManager.ConnectionStrings["Product"].Connection
String;
string queryString = "SELECT TenSP,DonGia,NhaSX FROM
SanPham";
SqlDataAdapter da = new SqlDataAdapter(queryString,
conString);
DataSet dsProduct = new DataSet();
using (da)
{
da.Fill(dsProduct);
}
return dsProduct;
}
Tạo một file mới tên EditProducts.cs. Trong đó tạo 2 class sau:
II. Binding to a DataSet
USING OBJECTDATASOURCE CONTROL
Lưu ý:

string conString =
WebConfigurationManager.ConnectionStrings["Product"].Conne
ctionString;
-Kết nối với connectionstring đã tạo trong file web.config
thay vì gõ trực tiếp. Để sử dụng được phải khai báo thêm
thư viện:
using System.Web.Configuration;
II. Binding to a DataSet
USING OBJECTDATASOURCE CONTROL
Tiếp theo tương tự như trêntạo một ObjectDataSource sử dụng phương thức bên trên
và một GridView kết nối với ObjectDataSource để hiển thị dữ liệu.
Bấm F5 để kiểm tra kết quả.
II. Binding to a Web Service
USING OBJECTDATASOURCE CONTROL
[WebService(Namespace = " />[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {
[WebMethod]
public DateTime GetServerTime()
{
return DateTime.Now;
}
}
Tại Menu chọn Website >> Add New Iterm >> Web Service, click ADD. Code như sau:
II. Binding to a Web Service
USING OBJECTDATASOURCE CONTROL
Ta có thể tạo một Formview sau đó kết nối với một ObjectDataSource sử dụngClass từ
file WebService.cs. Kết quả như sau:
Sử dụng parameter trong ObjectDataSource
USING OBJECTDATASOURCE CONTROL
Parameter Ý nghĩa

SelectParameters Thông số được truyền vào phương thức trong thuộc tính
SelectMethod
InsertParameters Thông số được truyền vào phương thức trong thuộc tính
InsertMethod
UpdateParameters Thông số được truyền vào phương thức trong thuộc tính
UpdateMethod
DeleteParameters Thông số được truyền vào phương thức trong thuộc tính
DeleteMethod
FilterParameters Thông số được truyền vào phương thức trong thuộc tính
FilterMethod
USING OBJECTDATASOURCE CONTROL
Tạo mới một Webform tên EditProducts.aspx và một file EditProducts.cs. Trong File
EditProDucts.cs tạo class như sau:
public class EditProducts
{
//Xuất dữ liệu
public static DataSet ShowProducts()
{
string conString =
WebConfigurationManager.ConnectionStrings["Product"].ConnectionString;
string queryString = "SELECT TenSP,DonGia,NhaSX FROM SanPham";
SqlDataAdapter da = new SqlDataAdapter(queryString, conString);
DataSet dsProduct = new DataSet();
using (da)
{
da.Fill(dsProduct);
}
return dsProduct;
}
Sử dụng parameter trong ObjectDataSource

USING OBJECTDATASOURCE CONTROL
//Update dữ liệu
public void UpdateProducts(int ID, string MaSP, string TenSP, double DonGia, string
NhaSX)
{
string conString =
WebConfigurationManager.ConnectionStrings["Product"].ConnectionString;
SqlConnection con = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand("UPDATE SanPham SET MaSP=@MaSP,
TenSP=@TenSP, DonGia=@DonGia, NhaSX=@NhaSX WHERE ID=@ID", con);
cmd.Parameters.AddWithValue("ID", ID);
cmd.Parameters.AddWithValue("MaSP", MaSP);
cmd.Parameters.AddWithValue("TenSP", TenSP);
cmd.Parameters.AddWithValue("DonGia", DonGia);
cmd.Parameters.AddWithValue("NhaSX", NhaSX);
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
Sử dụng parameter trong ObjectDataSource
USING OBJECTDATASOURCE CONTROL
//Delete dữ liệu
public void DeleteProducts(string TenSP, string MaSP)
{
string conString =
WebConfigurationManager.ConnectionStrings["Product"].ConnectionString;
SqlConnection con = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand("DELETE FROM SanPham WHERE

TenSP=@TenSP AND MaSP=@MaSP", con);
cmd.Parameters.AddWithValue("TenSP", TenSP);
cmd.Parameters.AddWithValue("MaSP", MaSP);
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
}
Sử dụng parameter trong ObjectDataSource
USING OBJECTDATASOURCE CONTROL
Tạo một ObjectDataSource chọn EditProducts. Tại Tab SELECT, UPDATE, DELETE lần lượt
chọn các phương thức đã tạo bên trên.
Sử dụng parameter trong ObjectDataSource
USING OBJECTDATASOURCE CONTROL
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="ShowProducts" TypeName="EditProducts"
UpdateMethod="UpdateProducts" DeleteMethod="DeleteProducts">
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name=MaSP" Type="String" />
<asp:Parameter Name="TenSP" Type="String" />
<asp:Parameter Name="DonGia" Type="Double" />
<asp:Parameter Name="NhaSX" Type="String" />
</UpdateParameters>
<DeleteParameters>
<asp:Parameter Name="TenSP" Type="String" />
<asp:Parameter Name="MaSP" Type="String" />
</DeleteParameters>

</asp:ObjectDataSource>
Khi đó trong màn hình Source sẽ có đoạn code sau:
Sử dụng parameter trong ObjectDataSource
USING OBJECTDATASOURCE CONTROL
Trong Smart Tag của GridView click chọn vào Enable Editing và Enable Deleting
để bật chức năng UPDATE và DELETE. Sau đó bấm F5 để xem kết quả.
Sử dụng parameter trong ObjectDataSource
Một số loại parameter khác
Parameter Ý nghĩa
Parameter Tiêu biểu cho một giá trị tĩnh tùy ý
ControlParameter Tiêu biểu cho giá trị của control hay thuộc tính trang
CookieParameter Tiêu biểu cho giá trị cookie của trình duyệt
FormParameter Tiêu biểu cho giá trị của HTML form
ProfileParameter Tiêu biểu cho giá trị của thuộc tính Profile
QueryStringParameter Tiêu biểu cho giá trị của chuỗi truy vấn
SessionParameter Tiêu biểu cho giá trị của session
USING OBJECTDATASOURCE CONTROL
Sử dụng parameter trong ObjectDataSource
Truyền một đối tượng như một parameter
Nếu như danh sách các Parameters thay đổi, ta phải
update các phương thức liên quan. Thay vì sử dụng
danh sách các Parameters trong phương thức, ta có thể
sử dụng một đối tượng đặc biệt như một parameter.
USING OBJECTDATASOURCE CONTROL

×