Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
1,09 MB
Nội dung
Huỳnh Văn Thâm Lập Trình ADO.NET Sử Dụng Các Wizard Trong Thiết Kế Các thành phần ADO.NET Toolbar => Data + SqlConnection: ChuổI kết nốI vớI SQL Server + SqlDataAdapter: Để kết nốI vớI Table Sql + DataSet: Dùng để chứa liểu + DataView: Dùng để lọc liệu + SqlCommand: Để thực câu lệnh SQL % Codes VB tạo nằm trong: InitializeComponent() Mã VB.Net tự động phát sinh Windows Form Private Sub InitializeComponent() …………………… Me.SqlDataAdapterKhachHang = New System.Data.SqlClient.SqlDataAdapter Me.DataSet11 = New PhieuNhap.DataSet1 Me.SqlDataAdapterLoaiHang = New System.Data.SqlClient.SqlDataAdapter Me.SqlConnection1 = New System.Data.SqlClient.SqlConnection Me.SqlDataAdapterHangHoa = New System.Data.SqlClient.SqlDataAdapter Me.SqlDataAdapterPhieuNhap = New System.Data.SqlClient.SqlDataAdapter Me.SqlDataAdapterChiTietPhieuNhap = New System.Data.SqlClient.SqlDataAdapter Me.SqlDataAdapterThieuChi = New System.Data.SqlClient.SqlDataAdapter Me.DataViewHangHoa = New System.Data.DataView …………………………… End Sud Thành phần SqlConnection + Click Toolbox + Click Data + Click SqlConnection + Click Application (project tạo) + Click Right SqlConnection1 + Click Properties - Name: tên connection - ConnectionString: ChuổI Kết nốI vào SQL Server ConnectionString Click ComboBox ConnectionString + Select or enter a server name: Chọn Computer Name Server Name + Select the database on the server: Chọn database server + Test Connection: Kiểm tra chuổI kết nốI có thành công hay không Lời khuyên Lưu chuỗi kết nối Registry file XML Configuration project Truy xuất chuỗi kết nối Registry : RegistryKey key = Registry.LocalMachine.OpenSubKey(“Software\\MyProgram”) SqlConnection1.ConnectString = key.GetValue(“MyConnectString”).toString(); Truy xuất chuỗi kết nối file XML Configuration: Viết mã kiện cho thành phần Connection Sự kiện StateChange khởi phát trạng thái (đóng, mở, …) Connection thay đổi Sự kiện InfoMessage khởi phát có thông điệp chuyển đến từ Database Server Thành phần SqlCommand + Connection : Kết nốI vớI SqlConnection + CommandText: ChuổI thực câu lệnh SQL Server + Sau Chọn Connection mớI chọn CommandText 10 Thành phần DataGird: DataSource, DataMember, DataBind, Auto Format Kết gán với DataTable DataView thông qua tính chất DataSource DataMember Phương pháp DataBind sử dụng để cập nhật thay đổi nguồn liệu Có thể sử dụng wizard Auto Format để chọn tập mẫu DataGird 38 Huỳnh Văn Thâm Sử Dụng DataReader 39 DataReader Hỗ trợ truy cập liệu nhanh, one-way, read-only Chỉ đọc liệu từ server dòng riêng rẽ nên không tốn nhớ Chỉ tạo thông qua phương pháp ExecuteReader đối tượng Command Connection phải mở trước gọi ExecuteReader Phương pháp Close DataReader phải gọi DataReader không cần sử dụng để giải phóng Connection 40 Các phương pháp tính chất quan trọng GetSchemaTable Trả DataTable mô tả lược đồ tập mẩu tin kết truy vấn liệu 41 Read Dời sang mẩu tin tập kết Close Đóng đối tượng DataReader NextResult Chuyển sang tập mẩu tin kết (trường hợp DataReader chứa nhiều kết truy vấn) FieldCount Lấy số lượng cột hàng hành GetOrdinal(string column) Trả số cột có tên tương ứng 42 Phương thức ExecuteReader Command Cú pháp: reader = command.ExcuteReader(t) t ∈ enum CommandBehavior enum CommandBehavior CloseConnection SchemaOnly SingleResult SingleRow Vd: command.ExecuteReader(CommandBehavior.CloseConnecti on | CommandBehavior.SingleRow) 43 Truy cập DataReader với nhiều tập mẩu tin kết String sql = “select * from HangHoa; select * from KhachHang ” SqlCommand command = new SqlCommand(sql,conn) conn.Open() SqlDataReader reader = command.ExecuteReader(); { while (reader.Read()) { } } while (reader.NextResult()); 44 Chương 6: Sử Dụng DataAdapter 45 DataAdapter làm việc với Dataset để cung cấp chế truy cập liệu không giữ kết nối Mô hình thừa kế lớp DataAdapter Net FrameWork : DataAdapter DbDataAdapter SqlDataAdapter OleDataAdapter OdbcDataAdapter OracleDataAdapter DataAdapter quản lý command dạng tính chất lớp : SelectCommand, InsertCommand, UpdateCommand, DeleteCommand 46 Phương thức Fill Sử dụng command SelectCommand để truy vấn liệu, kết trả điền vào DataSet Vd: Me.SqlSelectCommand1 = New System.Data.SqlClient.SqlCommand Me.SqlSelectCommand1.CommandText = "SELECT HH_MaHang, HH_TenHang, HH_SoLuong, HH_GiaNhap, HH_MaLoai FROM HANGHOA" Me.SqlSelectCommand1.Connection = Me.SqlConnection1 Me.SqlDataAdapter1.SelectCommand = Me.SqlSelectCommand1 Dim ds as new DataSet(“Authors”) Me.SqlDataAdapter1.Fill(ds,”Table1”) Phải mở đóng Connection trước sau thực phương thức Fill 47 Điền liệu vào DataSet có sẵn Schema Xác định tính chất MissingSchemaAction DataAdapter : DataAdapter.MissingSchemaAction = MissingSchemaAction.Add Bổ sung cột thiếu Schema DataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey Bổ sung cột thiếu Schema, cập nhật khóa DataAdapter.MissingSchemaAction = MissingSchemaAction.Error Phát sinh ngoại lệ (Exception) với cột bị thiếu DataAdapter.MissingSchemaAction = MissingSchemaAction.Ignore Bỏ qua cột thiếu 48 Phương thức FillSchema Schema : Lược đồ tập liệu, bao gồm cấu trúc quan hệ bảng liệu Me.SqlSelectCommand1 = New System.Data.SqlClient.SqlCommand Me.SqlSelectCommand1.CommandText = "SELECT HH_MaHang, HH_TenHang, HH_SoLuong, HH_GiaNhap, HH_MaLoai FROM HANGHOA" Me.SqlSelectCommand1.Connection = Me.SqlConnection1 Me.SqlDataAdapter1.SelectCommand = Me.SqlSelectCommand1 Dim ds as new DataSet(“Authors”) Me.SqlDataAdapter1.FillSchema(ds, SchemaType.Source,”Table1”) enum SchemaType : SchemaType.Source SchemaType.Mapping 49 Khi có thao tác thay đổi liệu bảng DataSet, dòng bị thay đổi ghi nhận qua tính chất RowState RowState nhận giá trị : DataRowState.Added Cho biết dòng thêm vào DataRowState.Deleted Cho biết dòng bị xóa DataRowState.Detached Cho biết dòng không thuộc tập liệu gốc DataSet DataRowState.Modified Cho biết dòng bị thay đổi DataRowState.Unchanged Dòng không bị thay đổi 50 Phương thức Update Cập nhật liệu từ DataSet vào sở liệu gốc Nội dung hoạt động Update: duyệt qua khoản tin DataSet, phân tích giá trị RowState gọi command tương ứng DataAdapter : Select, Insert, Update Delete Command Select định nghĩa từ đầu tạo DataAdapter, sử dụng để truy vấn liệu điền vào DataSet (có thể định nghĩa tường minh, thông qua hàm dựng DataAdapter) Các command Insert, Update, Delete sử dụng cho phương thức Update, người sử dụng định nghĩa phát sinh tự động cách sử dụng CommandBuilder : Dim SqlCommandBuilder as new SqlCommandBuilder(DataAdapter) 51 Hạn chế sử dụng CommandBuilder : Chỉ sử dụng cho DataAdapter kết nối đến bảng liệu Bảng liệu phải định khóa Định nghĩa command Insert, Update, Delete cho DataAdapter: tạo command với CommandText có chuỗi SQL tương ứng, sử dụng tham số cho cột liệu 52 [...]... Tables Mapping : Trong SqlDataAdapter Dùng để thay đổI theo ý mình.( Dataset table, Dataset Columms) Nên dùng Tables Mapping ngay sau khi vừa tạo xong SqlDataAdapter 27 Thành phần DataSet (Không kết nối với SQLServer) Độc lập nguồn dữ liệu => sử dụng chung cho tất cả các loại Connection, nguồn dữ liệu XML 28 Typed Dataset: Tạo một đối tượng từ lớp con Dataset do người sử dụng định nghĩa, kế thừa từ lớp... DataView Dùng để lọc dữ liệu trong Dataset + Click Toolbox + Click Data + Click DataView + Click Application(Project mà đang tạo) •Table: của DataView dùng để kết với bản trong Dataset • RowFilter: Là giống như câu Where trong câu lệnh Selecte SQL Server 34 Thành phần DataView 35 Hiển thị tập con các mẩu tin trong một DataTable : 1 Lọc các mẩu tin bằng một biểu thức lọc 2 Lọc các mẩu tin theo trạng thái... nghĩa, kế thừa từ lớp Dataset của Net FrameWork Gọi là Dataset được định kiểu Untyped Dataset: Tạo một đối tượng Dataset trống, không có lược đồ (schema) dữ liệu Gọi là Dataset chưa được định kiểu Typed DataSet Có các thông tin về lược đồ (quan trọng nhất là kiểu dữ liệu của các cột trong bảng) được khai báo như là thành viên lớp tương thích với nguồn dữ liệu Giúp tránh các lỗi khi Dataset được update... Xây dựng CommangText bằng QueryBuilder 11 12 Sử dụng tham số (Parameters) trong Command 13 Thành phần DataAdapter DataAdapter chuyển giao dữ liệu từ nguồn sang Dataset và ngược lại Tạo SqlDataAdapter + Click Toolbox + Click SqlDataAdapter + Click Application (project đang tạo) 14 Configure Data Adapter … 15 New Connection: Chọn kết nốI tớI dữ liệu SQL Server (giống SqlConnection) 16... cột trong bảng) được khai báo như là thành viên lớp tương thích với nguồn dữ liệu Giúp tránh các lỗi khi Dataset được update vào nguồn dữ liệu Truy cập dữ liệu một cách tự nhiên: myDataset.myTable.myColumn 29 Tạo Typed Dataset: có 2 cách 1 Generate Dataset từ DataAdapter 2 Add Dataset từ menu Project Add Dataset từ menu Project 1 Chọn menu Project Add New Item Dataset Open Hay ToolBox ... kiện SQL (Tự tạo) + Created new stored procedures: tạo mớI stored procedures + Created existing stored procedures: Lấy các stored procedures đã được tạo 18 Query Bulder : Xây dựng câu Query 19 Tạo Insert, Update, Delete……… 20 21 Mã lệnh phát sinh sau khi configure DataAdapter : Xem trong hàm: Private Sub InitializeComponent() ‘Codes phát sinh End Sub 22 Preview DataAdapter : để xem dữ liệu (fill)... Typed Dataset chứa một đối tượng DefaultView có thể được truy cập thông qua mã Cú pháp của biểu thức lọc tương tự như một mệnh đề WHERE trong SQL Có thể dùng tính chất Sort của DataView để sắp xếp mẩu tin, cú pháp của tính chất Sort tương tự như mệnh đề ORDER BY trong SQL RowFilter: Lọc 36 ... SQLServer) Độc lập nguồn liệu => sử dụng chung cho tất loại Connection, nguồn liệu XML 28 Typed Dataset: Tạo đối tượng từ lớp Dataset người sử dụng định nghĩa, kế thừa từ lớp Dataset Net FrameWork... DataAdapter, sử dụng để truy vấn liệu điền vào DataSet (có thể định nghĩa tường minh, thông qua hàm dựng DataAdapter) Các command Insert, Update, Delete sử dụng cho phương thức Update, người sử dụng. .. DataBind, Auto Format Kết gán với DataTable DataView thông qua tính chất DataSource DataMember Phương pháp DataBind sử dụng để cập nhật thay đổi nguồn liệu Có thể sử dụng wizard Auto Format