1. Trang chủ
  2. » Công Nghệ Thông Tin

Ltudql1 hk1 1718 lt 05 ado net

67 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 67
Dung lượng 4,27 MB

Nội dung

ĐHQG HCM – TRƯỜNG ĐH KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN Truy xuất sở liệu với ADO.NET Lập trình ứng dụng quản lý ThS Ngơ Chánh Đức Giới thiệu ADO.NET Lập trình ứng dụng quản lý Database driver  Database driver – Trình điều kiển CSDL: ▪ Thành phần trung gian hệ quản trị CSDL bên (ứng dụng) Database driver Application DBMS Các loại database driver  ODBC driver (Open database connectivity): ▪ phát triển Microsoft ▪ Hỗ trợ Microsoft SQL Server, MySQL, PostgreSQL, Oracle  OLEDB provider ▪ Microsoft OLE DB Provider for ODBC ▪ Microsoft OLE DB Provider for Oracle ▪ Microsoft OLE DB Provider for Microsoft Jet Các loại database driver  JDBC (Java Database Connectivity) driver: ▪ Được tích hợp máy ảo java JVM ▪ Hỗ trợ CSDL sử dụng ODBC, Oracal,  ADO.Net provider: ▪ API NET Framework ▪ Hỗ trợ CSDL SQL Server, Orcal, Access, Thư viện ADO.NET  Phát triển từ thành phần xử lý liệu ADO (ActiveX Data Object)  Có thể thao tác với liệu kết nối, không kết nối XML  Là thư viện Microsoft NET Framework Đặc điểm thư viện ADO.NET  Interoperability – Tương tác nhiều hệ thống ▪ Sử dụng định dạng XML để đóng gói liệu  sử dụng HTTP  Scalability – Hỗ trợ nhiều người dùng ▪ Sử dụng liệu dạng disconnected data ▪ Sử dụng Connection pooling để giữ kết nối  Productivity – Mở rộng khả làm việc với CSDL  Performance – Hiệu suất Kiến trúc ADO.NET .NET Data Provider DataSet Connected Objets Disconnected Objects Thực thi Command  ExecuteNonQuery : thực thi câu lệnh không truy vấn (không liệu trả về)  ExecuteReader : thực thi câu truy vấn trả đối tượng DataReader (bài trước)  ExecuteScalar : thực thi câu truy vấn trả giá trị Thiết lập tham số với Parameter  Được truyền vào câu lệnh Store Procedure tham số (chứ chuyển thành chuỗi lệnh thực thi mã nguồn) SqlParameter parameter = new SqlParameter(); parameter.ParameterName = "@CategoryName"; parameter.SqlDbType = SqlDbType.NVarChar; parameter.Direction = ParameterDirection.Input; parameter.Value = categoryName; command.Parameters.Add(parameter);  Tham khảo ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/configuring-parametersand-parameter-data-types ParameterDirection Member name Description Input The parameter is an input parameter This is the default InputOutput The parameter can perform both input and output Output The parameter is an output parameter ReturnValue The parameter represents a return value from an operation such as a stored procedure, built-in function, or user-defined function Parameter Placeholder Data provider Parameter naming syntax System.Data.SqlClient Uses named parameters in the format @parametername System.Data.OleDb Uses positional parameter markers indicated by a question mark (?) System.Data.Odbc Uses positional parameter markers indicated by a question mark (?) System.Data.OracleClient Uses named parameters in the format :parmname (or parmname) Kiểu liệu tham số (DbType) NET DbType Framework type Boolean Boolean Byte Byte SqlDbType OleDbType Bit TinyInt Boolean Bit UnsignedTinyInt TinyInt Byte Byte Binary VarBinary VarBinary Binary Raw Char Byte DateTime DateTime Inferring Char a SqlDbType fro m char is not supported DateTime DBTimeStamp DateTime DateTime Decimal Double Single Guid Decimal Double Single Guid Decimal Float Real UniqueIdentifier Decimal Double Single Guid Numeric Double Real UniqueIdentifier Number Double Float Raw Int16 Int32 Int64 Int16 Int32 Int64 SmallInt Int BigInt SmallInt Int BigInt SmallInt Int BigInt Int16 Int32 Number byte[] Char OdbcType OracleType Kiểu liệu tham số (DbType) NET DbType Framework type SqlDbType OleDbType OdbcType OracleType String String NVarChar VarWChar NVarChar NVarChar UInt16 UInt16 UnsignedSmallIn Int t UInt16 UInt32 UInt32 UnsignedInt BigInt UInt32 UInt64 UInt64 Inferring a SqlDbType fro m UInt16 is not supported Inferring a SqlDbType fro m UInt32 is not supported Inferring a SqlDbType fro m UInt64 is not supported UnsignedBigInt Numeric Number Kiểu liệu tham số (DbType) NET DbType Framework type SqlDbType OleDbType OdbcType OracleType Currency Money Currency Date Date in SQL Server 2008 DBDate Inferring Number an OdbcTypefro m Currency is not supported Date DateTime Time Time in SQL Server 2008 DBTime Time VarNumeric Inferring VarNumeric a SqlDbType fro m VarNumeric is not supported DateTime Inferring Number an OdbcTypefro m VarNumeric is not supported DataAdapter Trạng thại dòng DataRow  RowState RowState Command Added InsertCommand Deleted DeleteCommand Modifed UpdateCommand Trạng thại dòng DataRow Initialisation Add a row Added Edit a row Modified Delete a row Deleted Unchanged AcceptChanges Detached Cập nhật liệu với DataAdapter SqlDataAdapter dataAdpater = new SqlDataAdapter( "SELECT CategoryID, CategoryName FROM Categories", connection); dataAdpater.UpdateCommand = new SqlCommand( "UPDATE Categories SET CategoryName = @CategoryName " + "WHERE CategoryID = @CategoryID", connection); dataAdpater.UpdateCommand.Parameters.Add( "@CategoryName", SqlDbType.NVarChar, 15, "CategoryName"); SqlParameter parameter = dataAdpater.UpdateCommand.Parameters.Add( "@CategoryID", SqlDbType.Int); parameter.SourceColumn = "CategoryID"; parameter.SourceVersion = DataRowVersion.Original; dataAdpater.Update(categoryTable); Thiết lập tự động InsertCommand, UpdateCommand DeleteCommandn  Sử dụng đối tượng lớp DbCommandBuilder ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/generatingcommands-with-commandbuilders Liên quan đến giá trị Auto-increment  Tham khảo Retrieving Identity or Autonumber Values - Merging New Identity Values: https://docs.microsoft.com/enus/dotnet/framework/data/adonet/retrievingidentity-or-autonumber-values Phân trang với DataAdapter  Phân trang kết truy vấn giúp giảm thị phần kết  hạn chế hao tốn tài nguyên ứng dụng phải đợi lâu  Có thể phân trang việc sử dụng câu truy vấn SQL ▪ Ví dụ: SELECT * FROM HocSinh OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;  Hoặc sử dụng phương thức ▪ Fill (int startIndex, int maxRecord, DataTable dt) ▪ Fill (DataSet ds, int startIndex, int maxRecord , string tableName) Tham khảo  ADO.NET Architecture ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/ado-netarchitecture  ADO.NET DataSets ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/ado-net-datasets  NET Framework Data Providers ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/data-providers

Ngày đăng: 09/04/2023, 06:28