Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
1,02 MB
Nội dung
ADO.NET ADO.NET? Các thành phần ADO.NET 2.1: DataProviders 2.2: DataSets Các lớp NET Kết nối Cơ sở liệu thao tác liệu - Tạo, cấu hình, mở, đóng kết nối CSDL - Cách thực thi câu lệnh SQL Stored Procedure, cách sử dụng thông số để cải thiện tính linh hoạt chúng - Cách xử lý kết trả từ truy vấn CSDL - Cách nhận biết tất đối tượng SQL Server có hiệu lực mạng - Đọc file Excel với ADO.NET Khái niệm ADO.NET - ADO.NET phần NET Framework Nó xem “bộ thư viện lớp” chịu trách nhiệm xử lý liệu ngôn ngữ MS.NET - ADO.NET thiết kế với dạng liệu “ngắt kết nối”, nghĩa lấy cấu trúc phức tạp liệu từ database, sau ngắt kết nối với database thực thao tác cần thiết Đây tiến mặt thiết kế thiết kế ADO trước ln cần trì kết nối q trình thao tác liệu Các thành phần ADO.NET - ADO NET có thành phần data providers datasets - DataView sử dụng phần lớn để gắn (bind) liệu vào winform webform Kiến trúc ADO.NET Kiến trúc ADO.NET ADO Các lớp NET Các DataProviders • Data Provider for ODBC: Cung cấp kết nối đến datasource có thực giao diện ODBC; bao gồm Microsoft SQL Server, Oracle, Microsoft Access Các lớp dataprovider nằm khơng gian tên System.Data.Odbc có tiền tố Odbc • Data Provider for OLE DB: Cung cấp kết nối đến data-source có thực giao diện OLE DB; bao gồm Microsoft SQL Server, MSDE, Oracle, Jet Các lớp data provider nằm không gian tên System.Data.OleDb có tiền tố OleDb Các DataProviders (conti…) • Data Provider for Oracle : Cung cấp kết nối đến Oracle Các lớp data-provider nằm không gian tên System.Data.OracleClient có tiền tố Oracle • Data Provider for SQL Server: Cung cấp kết nối đến Microsoft SQL Server phiên (gồm MSDE) cách liên lạc trực tiếp với SQL Server mà không cần sử dụng ODBC hay OLE DB Các lớp dataprovider nằm khơng gian tên System.Data.SqlClient có tiền tố Sql • Data Provider for SQL Server CE: Cung cấp kết nối đến Microsoft SQL Server CE Các lớp data-provider nằm khơng gian tên System.Data.SqlServerCe có tiền tố SqlCe Sử dụng SQL Server Data Provider - Sử dụng SQL Server Data Provider.NET data provider cho SQL Server tên miền ‘System.Data.SqlClient’ giúp kết nối trực tiếp với server sử dụng network protocol khơng phải qua layers khác Các hàm thường sử dụng : SqlCommand : thực thi SQL queries, câu lệnh lưu trữ thủ tục SqlConnection : tạo kết nối tới SQL Server SqlDataAdapter : cầu nối trung gian dataset data source SqlReader : cung cấp data stream tới kết SqlError : lưu trữ thông tin lỗi cảnh cáo (warning) SqlException : ngoại lệ trường hợp SQL Server lỗi cảnh báo SqlParameter : tham sô biên command SqlTransaction : transaction SQL Server Sử dụng OLE DB Data Provider - Sử dụng OLE DB Data Provider NET Framework data provider cho OLE DB nằm tên miền ‘System.Data.Oledb’ Các classes hay dùng OledbCommand : thực thi SQL queries, câu lệnh lưu trữ thủ tục OledbConnection : tạo kết nối tới OLE DB source OledbDataAdapter : tạo cầu nối dataset data source OledbDataReader : cung cấp data stream tới rows data source OledbError : Lưu trữ thông tin lỗi cảnh báo OledbParameter : tham số command OledbTransaction : transaction SQL 10 Các thuộc tính quan trọng SQL parameter - Direction: Kiểu liệu Enum ParameterDirection, bảng sau ý nghĩa giá trị ParameterDirection Member name Description Input input parameter (mặc định) InputOutput Parameter input output Output Parameter output parameter ReturnValue parameter biểu diễn giá trị trả từ thực thi lệnh stored procedure, lệnh, user-defined function 21 Các thuộc tính quan trọng SQL parameter - ParameterName: Tên parameter - Vị trí parameter lệnh xác định tương ứng với Provider sau: Sqlclient - @parametername, OracleClient - parmname (hoặc parmname), OleDb Odbc vị trí tên tham số đánh dấu dấu ? - Ví dụ: với Sqlclient 22 Các thuộc tính củaParameters (conti …) Name Description DbType Gets or sets the SqlDbType of the parameter (Overrides DbParameter.DbType.) IsNullable Gets or sets a value that indicates whether the parameter accepts null values (Overrides DbParameter IsNullable.) Precision Gets or sets the maximum number of digits used to represent the Value property Scale Gets or sets the number of decimal places to which Value is resolved Size Gets or sets the maximum size, in bytes, of the data within the column (Overrides DbParameter.Size.) SqlDbType Gets or sets the SqlDbType of the parameter 23 Các thuộc tính Parameters (conti …) Name Description SqlValue Gets or sets the value of the parameter as an SQL type TypeName Gets or sets the type name for a table-valued parameter UdtTypeName Gets or sets a string that represents a user-defined type as a parameter Value Gets or sets the value of the parameter (Overrides DbParameter.Value.) SourceColumn Gets or sets the name of the source column mapped to the DataSet and used for loading or returning the Value (Overrides DbParameter.SourceColumn.) SourceColumnNullMap ping Sets or gets a value which indicates whether the source column is nullable This allows SqlCommandBuilder to correctly generate Update statements for nullable columns (Overrides DbParameter.SourceColumnNullMapping.) 24 Tham số truyền vào lệnh (parameters) + Muốn thay đổi lệnh ta phải thay đổi CommandText, Nếu ta thực thi lệnh SQL với tham số khác mà lần phải thay đổi tồn xâu CommandText khơng linh động NET hỗ trợ truyền vào lệnh biểu thức SQL để thay đổi thông tin cần thiết CommandText + Ví dụ: 25 Truyền tham số vào thủ tục - Tên, kiểu kích thước liệu parameter phải tương ứng với tham số thủ tục Với tham số kiểu out SQL phải đặt thuộc tính Direction parameter ParameterDirection.Input ParameterDirection.InputOutput - Ví dụ: 26 Các Methods SqlCommand Tên Mơ tả ExecuteNonQuery Thực thi câu lệnh SQL, trả số lượng ghi bị tác động (UPDATE, DELETE, INSERT) ExecuteReader Thực thi câu lệnh SQL, trả SqlDataReader ExecuteXmlReader Thực thi câu lệnh SQL, trả XmlReader ExecuteScalar Thực thi câu lệnh SQL, trả giá trị ô có số dịng đầu tiên, số cột đâu tiên 27 Sử dụng DataReader - Data Readers dùng để : + Thu nhận kết từ query + Lấy thông tin cột hàng bảng liệu + Lấy thông tin result set + Lấy thông tin schema + Xử lý result sets - Connection Command dùng để kết nối thực thi truy vấn Để xử lý liệu ta dùng DataReader DataReader stream kết nối CSDL đọc DL hiệu quả, theo chiều nhận liệu theo dòng 28 DataReader - DataReaders đối tượng thuộc interface ‘System.Data.IdataReader’ khơng thể tạo trực tiếp DataReader mà phải tạo thông qua phương thức “ExecuteReader ” đối tượng Command - Ví dụ: Dim conn As SqlConnection = new SqlConnection(connectionString) Dim cmd As SqlCommand = new SqlCommand(“query command”, conn) Dim reader As SqlDataReader = cmd.ExecuteReader() - Không thể tạo DataReader theo cú pháp dạng sau: Dim reader As SqlDataReader =new DataReader() 29 Ví dụ 30 DataReader - Đối tượng thu Reader kiểu Object, ta phải chuyển kiểu - Phương thức Read() để trỏ đến hàng Để truy cập vào cột ta dùng index SqlDataReader cung cấp định Index tên cột - Ví dụ: kết truy vấn có trường liệu: manv, ten_nhanvien, ngaysinh, diachi Thì việc dùng: + reader(1), reader(“ten_nhanvien”), reader.Item(1), Reader.Item(“ten_nhanvien”) Đều cho kết - Để nhận giá trị Item DataReader dùng phương thức get Ví dụ: GetDateTim, GetFloat, … 31 Một số thuộc tính phương thức DataReader Methods or Properties (M or P) Chú thích Depth – P Lấy độ sâu Row FieldCount – P Số lượng cột Row GetDataTypeName – M Kiểu liệu Col GetFieldType – M Kiểu Object NET Framework GetName – M Tên Column GetOrdinal - M Trả index Column tương ứng với tên GetSchemaTable – M Column Metadata HasRows – P Kiểm tra data reader có row hay không ? RecordsAffected - P Số lượng Rows bị thay đổi, chèn thêm, xóa 32 Xử lý tập kết với data reader - Khi gọi lúc nhiều query với DataReader, để chuyển thao tác tới kết liệu ta dùng phương thức ‘NextResult()’ dataReader - Ví dụ: - Trong ví dụ có query, query thực Phải có ký tự ngăn cách query để kiểm tra hợp lệ Với Sql dấu cách (space) 33 Ví dụ ' Tạo connection Dim connStr As String = "Server = \SQLEXPRESS;Integrated Security = True;Database = Northwind" Dim conn As SqlConnection = New SqlConnection(connStr) ' Tạo query Dim sql1 As String = "SELECT productname, unitprice FROM products " Dim sql2 As String = "SELECT firstname, lastname FROm employees " Dim sql As String = sql1 + sql2 Try ' Mở kết nối conn.Open() ' Tạo command Dim cmd As SqlCommand = New SqlCommand(sql, conn) ' Tạo Data Reader Dim reader As SqlDataReader = cmd.ExecuteReader() Do While (reader.Read()) Console.WriteLine("\t{0} - {1}", reader(0), reader(1)) End While Console.WriteLine("".PadLeft(60, "=")) Loop While (reader.NextResult()) reader.Close() Catch sqle As SqlException ' Thơng báo lỗi Console.WriteLine(sqle.ToString()) Finally ' Đóng kết nối conn.Close() Console.WriteLine("Close connection !") End Try 34 Sử dụng SqlDataAdapter - Ý nghĩa: + Thực thi câu lệnh SQL, nhận kết trả bảng (DataTable) - Các cách tạo SqlDataAdapter + Cách : Đơn giản khai báo tạo đối tượng Adapter SqlDataAdapter da = new SqlDataAdapter(); + Cách : Thiết lập đối tượng SqlCommand SqlDataAdapter da = new SqlDataAdapter(cmd); + Cách : Thiết lập query đối tượng SqlConnection SqlDataAdapter da = new SqlDataAdapter(sql, conn); + Cách : Thiết lập query mệnh lệnh thực thi SqlDataAdapter da = new SqlDataAdapter(sql, connString); - Dùng phương thức Fill để lấy liệu nguồn vào DataTable DataSet 35 ...Khái niệm ADO. NET - ADO. NET phần NET Framework Nó xem “bộ thư viện lớp” chịu trách nhiệm xử lý liệu ngôn ngữ MS .NET - ADO. NET thiết kế với dạng liệu “ngắt kết nối”,... database thực thao tác cần thiết Đây tiến mặt thiết kế thiết kế ADO trước ln cần trì kết nối trình thao tác liệu Các thành phần ADO. NET - ADO NET có thành phần data providers datasets - DataView sử dụng... - DataView sử dụng phần lớn để gắn (bind) liệu vào winform webform Kiến trúc ADO. NET Kiến trúc ADO. NET ADO Các lớp NET Các DataProviders • Data Provider for ODBC: Cung cấp kết nối đến datasource