CẤU TRÚC CỦA ADO.NET
TỔNG QUAN VỀ ADO.NET
ADO.NET cung cấp khả năng truy cập các nguồn dữ liệu một cách nhất quán như SQL Server, dữ liệu quản lý thông qua OLE DB và XML
ADO.NET bao gồm các trình cung cấp dữ liệu .NET (.NET data provider) cho việc kết nối đến cơ sở dữ liệu, thực thi một câu lệnh và truy xuất kết quả.
46 trang |
Chia sẻ: phuongt97 | Lượt xem: 394 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình ứng dụng Web - Chương VI: ADO.Net, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG VI:ADO.NETLý thuyết: 3 tiếtThực hành 6 tiết8/12/20211CẤU TRÚC CỦA ADO.NET8/12/20212TỔNG QUAN VỀ ADO.NET ADO.NET cung cấp khả năng truy cập các nguồn dữ liệu một cách nhất quán như SQL Server, dữ liệu quản lý thông qua OLE DB và XMLADO.NET bao gồm các trình cung cấp dữ liệu .NET (.NET data provider) cho việc kết nối đến cơ sở dữ liệu, thực thi một câu lệnh và truy xuất kết quả. 8/12/20213TỔNG QUAN VỀ ADO.NETĐối tượng ADO.NET Dataset cũng có thể được sử dụng một cách độc lập với .NET data provider để quản lý dữ liệu thuộc những ứng dụng hoặc những nguồn từ XML Lớp ADO.NET được tìm thấy trong namespace System.Data, và được tích hợp với lớp XML được tìm thấy trong namespace System.Xml Connection8/12/20214KHÔNG GIAN TÊNKhông gian tên sử dụng trong ADO.NET gồm:System.DataSystem.Data.CommonSystem.Data.SqlClient: dùng cho cơ sở dữ liệu SQLSystem.Data.OleDb dùng cho cơ sở dữ liệu access8/12/20215CẤU TRÚC CỦA ADO.NETADO.NET Components được thiết kế để quản lý việc truy cập dữ liệu từ nguồn dữ liệu. Có 2 thành phần chính trong ADO.NET: ADO.NET Dataset là thành phần chính của kiến trúc kết nối gián đoạn của ADO.NET. Dataset bao gồm tập hợp một hoặc nhiều đối tượng DataTable8/12/20216CẤU TRÚC CỦA ADO.NETNET Data Provider - một tập hợp các thành phần bao gồm các đối tượngConnection: cung cấp việc kết nối đến CSDLCommand :truy cập các câu lệnh CSDLDataReader: cung cấp một luồng truy xuất DL DataAdapter: cung cấp cầu nối giữa đối tượng Dataset và CSDL. DataAdapter sử dụng đối tượng Command để thực thi các câu lệnh SQL 8/12/20217Các đối tượng trong ADO.NetĐối tượng ConnectionChức năng: Thiết lập kết nối đến cơ sở dữ liệuKết nối với cơ sở dữ liệu access:OleDbConnection con;// Khai báoString strcon;strCon ="Provider=Microsoft.Jet.OleDb.4.0;Data Source =";strCon = strCon + Server.MapPath(".") + "\\sv.mdb"; con = new OleDbConnection(strCon);con.Open();8/12/20218SqlConnection con;// Khai báoString strcon;strCon= “Server=ServerName;Database=DBName;uid=userName;pwd=password”;con = new SqlConnection(strCon);con.Open();Kết nối với cơ sở dữ liệu Sql:8/12/20219Các phương thức của ConnectionPhương thứcOpen(): mở kết nốiClose(): đóng kết nốiDispose()8/12/202110Các đối tượng trong ADO.NetĐối tượng Command: thực thi câu lệnh SQL hoặc một Stored procedureMột Data Command là một thể hiện của class OleDbCommand hoặc class SqlCommand8/12/202111Các đối tượng trong ADO.NetCác phương thức của DataCommand Cancel(): Huỷ bỏ thực thi của một SqlCommandCreateParameter():Tạo một thể hiện mới cho đối tượng SqlParameter.8/12/202112Các đối tượng trong ADO.NetExecuteNonQuery(): Thực thi một câu lệnh T-SQL dựa vào Connection và trả về số mẫu tin bị ảnh hưởng như UPDATE, INSERT, DELETE. ExecuteScalar(): Trả về giá trị đơn (Giá trị cụ thể như 1 table, 1 record, 1 filed ) từ một truy vấn dữ liệu. ExecuteReader(): Gửi CommandText đến Connection và xây dựng một SqlDataReader, trả về tập các records8/12/202113Các đối tượng trong ADO.NetCác thuộc tính của Data CommandConnection: Command tham chiếu đến một connection, đối tượng này dùng để giao tiếp với cơ sở dữ liệu, nhận hay trả về SqlConnection mà command sử dụngCommandText: nhận hoặc trả về câu lệnh T-Sql hay thủ tục để thực thi 8/12/202114Các đối tượng trong ADO.NetCommandTimeout: nhận hay trả về thời gian chờ thực thi CommandType: nhận/ trả về giá trị cho biết loại commandtext được gán, các giá trị gồm StoredProcedure, TableDirect,Text. Mặc định là TextOleDbCommand cmd = new OleDbCommand(strsql,con);(với strsql là câu truy vấn cụ thể )8/12/202115Các đối tượng trong ADO.NetDataReader: được sử dụng trong những ứng dụng web với những thao tác ngắn với từng yêu cầu, thường là chỉ để hiển thị dữ liệu. Có 2 loại DataReader: OleDbDataReader và SqlDataReader.DataReader cung cấp cách truy xuất dữ liệu forward-only, read – only. 8/12/202116Các đối tượng trong ADO.NetĐể dùng SqlDataReader phải khai báo một SqlCommand. SqlCommand cung cấp một phương thức ExecuteReader() mà nó trả về một SqlDataReader khi thi hành một câu lệnh SQL hoặc một stored Procedure8/12/202117Các đối tượng trong ADO.NetOleDbCommand cmd;String strSql;strSql = "select * from tblsv";cmd = new OleDbCommand(strSql, con);rd = cmd.ExecuteReader();OleDbCommand cmd;String strSql;strSql = "select * from tblsv";cmd = new OleDbCommand();cmd.Connection = con; cmd.CommandText = strSql;rd = cmd.ExecuteReader();Tương đương8/12/202118Phương thức của DataReaderRead(): Đọc tới record cuối cùng EOF.NextResult(): di chuyển tới record kế tiếpĐể đọc giá trị của từng field. Sử dụng câu lệnh:DataReader rs;// Khai báors[“NameFiled”] or rs[index] Chú ý: Nhớ Convert về kiểu chuỗi Example: varName=Convert.ToString(rs[“Name”])Các đối tượng trong ADO.Net8/12/202119Từng bước kết nối ADO.NetĐể sử dụng DataReader cần phải thực hiện các bước sau:Tạo và mở kết nối CSDL ConnectionTạo đối tượng Command TạoDataReader từ đối tượng Command Gọi phương thức ExecuteReaderSử dụng đối tượng DataReaderĐóng đối tượng DataReader Đóng đối tượng Connection 8/12/202120OleDbConnection con;OleDbCommand cmd;OleDbDataReader rs;String strSQL,strCon;strCon=“Information connect to Database”;strSQL=“SQL statement”;con=new OleDbConnection(strCon);con.Open();cmd=new OleDbCommand(strSQL);cmd.Connection=con; rs=cmd.ExecuteReader();// if strSQL is Select statement Từng bước kết nối trong ADO.Net8/12/202121Sử dụng DataReader để chứa dữ liệu truy xuất đượcwhile(rs.Read()){ //varName=rs[“FieldName”]; //process varName according to application}Từng bước kết nối trong ADO.Net8/12/202122ExampleDatabase chứa 1 table:tblCustomer(CustomerID,Name)Viết kết nối vào database và thực các công việc sau:Hiển thị danh sách Customers ở dạng bảng sau:2) Thêm 1 customer3) Sửa đổi thông tin 1 customer4) Xóa 1 customerDanh Sach Khach HangMã khách hàngHọ tênKH098Phan Hoai An8/12/202123Answer 1)8/12/202124.. >8/12/202125Answer 2)8/12/202126Answer 3)8/12/202127Answer 4)8/12/202128DataTableDataSetDataAdapterCác đối tượng trong ADO.Net8/12/202129DataTableDataViewDataRowViewDataColumnDataRowDataTable8/12/202130DataTableDataViewDataView dv=new DataView();Thuộc tính của DataView.Count : Trả về số records có trong the DataView .RowFilter: Thiết lập hoặc trả về giá trị lọc theo 1 hàng bất kỳ sẽ hiển thị trên DataView..Sort: Sắp xếp thứ tự của 1 cột hay nhiều cột trong DataView. 8/12/202131DataTableDataViewVí dụ về các thuộc tính của DataViewint num;num=dv.Count;dv.RowFilter=“Expression condition”;dv.RowFilter=“FieldNameColumn>=10”;dv.Sort=“List FieldName sort” ; //ASC, DESCdv.Sort=“FieldName1,FieldName2 DESC”;dv.Sort = "EMpID";drView = dv.FindRows(EmpIDvalue); //drView is array8/12/202132DataTableDataViewDataView dv=new DataView()Method of DataViewFindRows: Trả về 1 mảng đối tượng DataRowView mà hàng đó sẽ tìm.DataRowView[] drView;dv.Sort=“FieldName”;drView=dv.FindRows(value) // Với value: FieldName8/12/202133DataTableDataRowViewDataRowView drView=new DataRowView()drView[i] or drView[“FieldNameColumn”] : giá trị trả vềString valueF;valueF=drView[“StudentID”];OrvalueF=drView[0];8/12/202134DataColumn: Trình bày lược đồ của một cột trong một DataTable. Mỗi DataColumn có một thuộc tính DataType để xác định kiểu dữ liệu được lưu trữ trong DataColumn DataTableDataColumn objColumn=new DataColumn(“ColumnName”);DataTable dt=new DataTable();Dt.Columns.Add(objColumn);8/12/202135Đối tượng DataTableDataRow: trình bày một dòng dữ liệu trong DataTable Khởi tạo:DataRow dr=new DataRow();dr[i] or dr[“FieldName”]: //return value8/12/202136Đối tượng DataTableCác thuộc tính- phương thức của DataTable.Columns: trả về các cột trong Datatable.Columns.Count: trả về số cột trong bảng.Columns.Add(DataColumn): Thêm cột vào bảng.Rows :trả về các dòng, mỗi dòng là một đối tượng datarow.Rows.Count :trả về số dòng trong bảng.Rows.Add(DataRow):thêm một dòng vào bảng8/12/202137DataTableDataTable: Là đối tượng để biểu diễn thông tin trong Dataset. ColName1ColName2.ColNameNData11Data12Data1NDataM1DataM2.DataMNDataColumnDataRow8/12/202138DataTableDataTableDataTable dt=new DataTable();.Columns:Trả về tập hợp các columns có trong table dt. .Rows: Trả về tập hợp các rows có trong table dt. dt.Columnsdt.RowsCount Add(objColumn)Count Add(objRow)8/12/202139DataTableDataTableDefaultView: 1 đối ượng DataView (Dạng hiển thị khác của DataTable)DataTable dt=new DataTable();Phương thức DataTableNewRow():Tạo 1 dòng mới DataRow DataRow dr;dr=dt.NewRow();8/12/202140DataSetDataSet bao gồm tập các đối tượng DataTable mỗi DataTable điển hình tương đương với một table hoặc là một view mà ta có thể thiết lập mối quan hệ giữa chúng thông qua đối tượng DataRelation. Dữ liệu trong DataSet có thể nhất quán bằng cách sử dụng đối tượng UniqueConstraint và ForeignKeyConstraint 8/12/202141DataSetDataSetDataSet ds; //Khai báoDataSet ds=new DataSet();//Khai báo và khởi tạo.Tables: trả về tất cả các Table chứa trong Dataset.ds.Tables[i] or ds.Tables[“tblName”] : Trả về đối tượng Table thứ i hoặc Table có “tên tblNameCountAdd(objTable)ds.Tables8/12/202142DataAdapterDataAdapterThe DataAdapter : Là đối tượng trung gian giữa 1 DataSet và nguồn dữ liệu nhận được, dùng để lưu dữ liệu.DataAdapter.Fill(ds) : Hiển thị data lên Dataset dsOleDbDataAdapter class. OleDbDataAdapter da = new OleDbDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds);(với cmd: OleDbCommand (Đã có))8/12/202143ExampleOleDbDataAdapter da;da=new OleDbDataAdapter(strSQL,con);DataSet ds=new DataSet(“tblA”);da.Fill(ds);DataTable dt;dt=ds.Tables[“tblA”]; //ds.Tables[0]foreach(DataRow dr in dt.Rows){ varName1= Convert.ToString(dr[“StudentID”]); varName2= Convert.ToString(dr[“Name”]); //process varName1, varName2}8/12/202144Khai báo chuỗi kết nối trong file Web.Config: Database được lưu trong thư mục gốc trong Visual Studio.Net:C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\HOADON.mdb8/12/202145Truy xuất chuỗi kết nối tại trang bất kỳstring strcon; strcon=ConfigurationManager.AppSettings["ConnectionString"];con= new OleDbConnection(strcon);con.ConnectionString=strcon;con.Open();8/12/202146
Các file đính kèm theo tài liệu này:
- bai_giang_lap_trinh_ung_dung_web_chuong_vi_ado_net.ppt