29
CHƯƠNG VII: KẾT GÁN DỮ LIỆU Lý thuyết : 3 tiết Thực hành 12 tiết

CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Embed Size (px)

DESCRIPTION

CHƯƠNG VII: KẾT GÁN DỮ LIỆU. Lý thuyết : 3 tiết Thực hành 12 tiết. Data Controls. DataGrid =Table(động được tạo trên server) Repeater DataList GridView. Các properties của Data Controls. Student ID. HeadText. 03CDTH892. DataField. ……. ……. 03CDTH632. DataField. DataGrid. - PowerPoint PPT Presentation

Citation preview

Page 1: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

CHƯƠNG VII:KẾT GÁN DỮ LIỆU

Lý thuyết : 3 tiết

Thực hành 12 tiết

Page 2: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Data Controls DataGrid =Table(động được tạo trên server) Repeater DataList GridView

Page 3: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Các properties của Data Controls

Properties DataList DataGrid

Column Layout(sắp xếp theo cột) X  

Paging(Hiển thị số trang)   X

Select/Edit/Delete X X

Sort   X

Style Properties(Kiểu cách) X X

Table Layout(Hiển thị kiểu Bảng)   X

Template(Sử dụng khuôn mẫu) X X

Page 4: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

DataGrid Ý nghĩa: Cung cấp một dạng bảng tính dữ liệu từ

data source Gồm tập các cột, một header, một footer. Các cột có thể tự động tạo hoặc tường minh

Thuộc tính:

03CDTH632

…….

03CDTH892

Student ID

DataField

…….

DataField

HeadText

<asp:BoundColumn DataField=“IDs” HeadText=“Student ID” />

Page 5: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Properties Descriptions

AutoGenerateColumns Tạo column tự động()

Column(Design & Coding)  

• Bound Column Cột dữ liệu

• Button Column Cột dạng Button

• HyperLink Column Cột dạng Liên Kết

• Template Column Cột tự thiết kế

EditItemStyle Định dạng cho Item

Header Style(Show Footer: true) Định dạng Header

Footer Style(Show Header: true) Định dạng Footer

GridLines Hiển thị dạng lưới

Page 6: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Ví dụ: Tạo điều khiển (Design)

Ràng buộc vào DataReader/Dataset: (Coding)

dgAuthors.DataSource = dr;dgAuthors.DataBind();

dgAuthors.DataSource = dr;dgAuthors.DataBind();

<asp:DataGrid id="dgAuthors" runat="server" /><asp:DataGrid id="dgAuthors" runat="server" />

dgAuthors.DataSource = ds.Table[0];dgAuthors.DataBind();

dgAuthors.DataSource = ds.Table[0];dgAuthors.DataBind();

Page 7: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

DataGrid – Ví dụ

<form id="form1" runat="server"> <div> <asp:DataGrid ID="DataGrid1" runat="server" Style="z-index: 100; left: 55px; position: absolute;top: 15px"> </asp:DataGrid> </div> </form>

Page 8: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

DataGrid Editing Sử dụng EditCommandColumn

Thuộc tính EditItemIndex (-1 ->không có dòng nào được hiệu chỉnh)

EditCommandColumn hiển thị 3 liên kết tương ứng 3 sự kiện: OnEditCommand, OnUpdateCommand, OnCancelCommand

Page 9: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

DataGrid Editing DataGridCommandEventArgs chứa

thông tin của dòng sẽ được hiệu chỉnh Thuộc tính DataKeyField thiết lập

khóa chính Sự kiện UpdateCommand, truy xuất

tập các DataKeys để thao tác trên khóa chính

Page 10: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

GridView các sự kiện

OnEditCommand=“FunctionEdit"OnCancelCommand=“FunctionCancel“OnPageIndexChanged=“FunctionPage" OnDeleteCommand=“FunctionDelete"OnItemCommand=“FunctionCommand"

Page 11: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Gán dữ liệu Access vào DataGrid protected void Page_Load(object sender, EventArgs e)

{ String strCon = "Provider=Microsoft.Jet.OleDb.4.0;Data Source = ";

strCon = strCon + Server.MapPath(".") + "\\App_Data\\SV.mdb";

OleDbConnection con = new OleDbConnection(strCon);

con.Open();

String strOLE = "select * from tblSinhVien";

OleDbDataAdapter adap = new OleDbDataAdapter(strOLE, con);

DataSet ds = new DataSet();

adap.Fill(ds);

DataGrid1.DataSource = ds; //kết gán dl với GridView có id là GridView1

DataGrid1.DataBind();

}

// lưu ý using System.Data.OleDb;

Page 12: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Gán dữ liệu SQL vào DataGrid protected void Page_Load(object sender, EventArgs e)

{ string strconn = "server=TRUCLY-PC\\SQL2005;database=SINHVIEN;uid=sa;pwd=sa";

SqlConnection conn = new SqlConnection(strconn);

string sql = "SELECT * FROM tblsinhvien";

SqlCommand cmd = new SqlCommand(sql, conn);

conn.Open();

SqlDataAdapter adap=new SqlDataAdapter(sql,conn);

DataSet ds = new DataSet();

adap.Fill(ds);

DataGrid1.DataSource = ds; //kết gán dl với DataGrid1

DataGrid1.DataBind();

}

Page 13: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Hiệu chỉnh dữ liệu - DataGrid

<form runat="server">

<asp:datagrid id="gd1" runat=server OnEditCommand="gd1_Edit" OnCancelCommand="gd1_Cancel" OnUpdateCommand="gd1_Update" DataKeyField="ID">

<Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel"UpdateText="Update" ItemStyle-Wrap="false"/> </Columns>

</asp:datagrid></form>

other style properties not shown

Page 14: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Hiệu chỉnh DataGrid – Mã lệnhprotected override void OnLoad(EventArgs e) { if (!IsPostBack) BindGrid(); base.OnLoad(e); }public void gd1_Edit(object src, DataGridCommandEventArgs

e) { gd1.EditItemIndex = (int)e.Item.ItemIndex; BindGrid(); }public void gd1_Cancel(object src,

DataGridCommandEventArgs e) { gd1.EditItemIndex = -1; BindGrid();

}

Page 15: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Đặc điểm khác của DataGrid Tùy biến giao diện GridView

ButtonColumn: hiển thị nút nhấn nhằm thực thi một lệnh nào đó.

Thuộc tính AllowSorting: hiển thị tiêu đề cột như một siêu liên kết.

Thuộc tính SortField : chỉ ra field được sắp xếp.

Page 16: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

PROPERTY DATAGRID

Page 17: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

ĐịNH DạNG DATAGRID

Page 18: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Thực hành: Sử dụng DataGrid

Tạo một OleDbConnection Tạo một OleDbCommand Tạo a DataReader Kéo một DataGrid vào Web Form Ràng buộc DataSource vào

DataGrid

Page 19: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Repeater

Ý nghĩa: Ràng buộc dữ liệu từ danh sách các item. Hiển thị

dữ liệu dựa trên các phần tử HTML Templates:

Page 20: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

DataBinder Phân tích và đánh giá biểu thức ràng

buộc dữ liệu Tính toán biểu thức ràng buộc dữ liệu để

rút trích dữ liệu đúng trong template Container.DataItem trả về đối tượng

Object DataBinder.Eval() là hàm tĩnh sử dụng

Reflection Không quan tâm đến kiểu của nguồn dữ

liệu (data source)

Page 21: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

DataBinder – Ví dụ<asp:Repeater id="rp1" runat="server"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem,

"Name") %><br> <%# DataBinder.Eval(Container.DataItem,

"Age","{0:2d}") %> <br> </ItemTemplate></asp:Repeater>

Page 22: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

<asp:Repeater id="rp1" runat=server> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "Name") %> is a <%# DataBinder.Eval(Container.DataItem, "Breed") %> and looks like this: <asp:Image runat=server ImageUrl=<%# DataBinder.Eval(Container.DataItem, "Image") %> /> </ItemTemplate> <SeparatorTemplate><hr/></SeparatorTemplate></asp:Repeater>

A Repeater control in use

Page 23: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

DataList Sử dụng DataList hiển thị dữ liệu từ

data source Sử dụng khi hiển thị dữ liệu dạng danh

sách (tương tự dạng Table) Đơn giản hơn DataGrid Ít nhất có ItemTemplate Mỗi template có kiểu dáng riêng

(HeaderStyle và ItemStyle)

Page 24: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

DataList – Ví dụ<asp:DataList id="dl1" runat=server RepeatColumns=2 RepeatDirection=Horizontal> <ItemTemplate> <div style="padding:15,15,15,15"> <asp:Image runat=server ImageUrl=<%# DataBinder.Eval(Container.DataItem, "Image") %> /> <br/> <b>Name: </b><%# DataBinder.Eval(Container.DataItem, "Name")%><br/> <b>Breed: </b><%# DataBinder.Eval(Container.DataItem, "Breed") %> </ItemTemplate></asp:DataList>

Page 25: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

DATALIST

Page 26: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Ràng buộc dữ liệu từ Data Reader

Thiết lập thuộc tính

Gọi phương thức DataBind

Id.DataSource = dr;dgEmp.DataBind();Id.DataSource = dr;dgEmp.DataBind();

Thu c tínhộThu c tínhộThu c tínhộThu c tínhộ Mô tảMô tảMô tảMô tả

DataSourceDataSource Ngu n ồ d li uữ ệ Ngu n ồ d li uữ ệ

DataTextFieldDataTextField Field trong DataTable đ c hi n thượ ể ị Field trong DataTable đ c hi n thượ ể ị

DataValueFieldDataValueField Field trong DataTable tr thành giá tr c a itemở ị ủ Field trong DataTable tr thành giá tr c a itemở ị ủ

Page 27: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Minh họa: Điều khiển DataGrid

Sử dụng AutoFormat Thiết lập Tiêu đề cột Phân trang Sắp xếp

Page 28: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

OleDb Server 2000

DataSet

DataTable

DataTable

Thi t b l u trế ị ư ữ

OleDb Database

OleDbDataAdapter

OleDbDataAdapter

OleDbConnection

OleDbConnection

DataTable

B nhộ ớ

OleDbDataAdapterOleDbDataAdapter

OleDbConnection

OleDbConnection

Dataset là gì?

Page 29: CHƯƠNG VII: KẾT GÁN DỮ LIỆU

Truy cập dữ liệu với ADO.NETDatabaseDatabase

4. Tr DataSet cho Clientả

5. Client thao tác d li uữ ệ

2. T o đ i t ng k t n i OleDbConnection và OleDbDataAdapter ạ ố ượ ế ố

3. Đi n d li u vào DataSet t ề ữ ệ ừDataAdapter, đóng k t n iế ố

OleDbDataAdapter

OleDbConnection

List-Bound

Control

List-Bound

Control

1. Yêu c u t Clientầ ừ1111

2222

3333

4444

5555

6. C p nh t DataSetậ ậ

7. S d ng OleDbDataAdapter đ ử ụ ểm OleDbConnection, c p nh t ở ậ ậc s d li u và đóng k t n iơ ở ữ ệ ế ố

6666

7777

ClientClient

Web serverWeb server

DataSet