Lập trình ADO.NET sử dụng các wizard trong thiết kế

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 dữ liểu. + DataView: Dùng để lọc dữ liệu. + SqlCommand: Để thực hiện một câu lệnh SQL

ppt51 trang | Chia sẻ: lylyngoc | Lượt xem: 1619 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Lập trình ADO.NET sử dụng các wizard trong thiết kế, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
* 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 của 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 dữ liểu. + DataView: Dùng để lọc dữ liệu. + SqlCommand: Để thực hiện một câu lệnh SQL % Codes do VB tạo ra nằm trong: InitializeComponent() * * Mã do VB.Net tự động phát sinh trong 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 đang 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 của ConnectionString * + Select or enter a server name: Chọn Computer Name hoặc Server Name + Select the database on the server: Chọn database trên 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 trong Registry hoặc file XML Configuration của project. Truy xuất chuỗi kết nối trong Registry : RegistryKey key = Registry.LocalMachine.OpenSubKey(“Software\\MyProgram”) SqlConnection1.ConnectString = key.GetValue(“MyConnectString”).toString(); Truy xuất chuỗi kết nối trong file XML Configuration: * Viết mã sự kiện cho thành phần Connection Sự kiện StateChange được khởi phát mỗi khi trạng thái (đóng, mở, …) của Connection thay đổi. Sự kiện InfoMessage được khởi phát mỗi khi 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 hiện câu lệnh SQL Server. + Sau khi Chọn Connection thì mớI chọn CommandText * Xây dựng CommangText bằng QueryBuilder. * * Sử dụng tham số (Parameters) trong Command. * Thành phần DataAdapter Tạo SqlDataAdapter + Click Toolbox + Click SqlDataAdapter + Click Application (project đang tạo) DataAdapter chuyển giao dữ liệu từ nguồn sang Dataset và ngược lại. * Configure Data Adapter … * New Connection: Chọn kết nốI tớI dữ liệu SQL Server (giống SqlConnection) * * + Created new stored procedures: tạo mớI stored procedures + Created existing stored procedures: Lấy các stored procedures đã được tạo. + Use SQL Statements : Tạo theo điều kiện SQL (Tự tạo) * Query Bulder : Xây dựng câu Query. * Tạo Insert, Update, Delete………. * * Mã lệnh phát sinh sau khi configure DataAdapter : Xem trong hàm: Private Sub InitializeComponent() ‘Codes phát sinh End Sub * Preview DataAdapter : để xem dữ liệu (fill) + Click-Right SqlDataAdapter1. + Click Preview Data... + Click Fill DataSet * Fill Dataset : * Generate Dataset : Từ SqlDataAdapter + Click-Right SqlDataAdapter1 + Click Generate Dataset New: tạo DataSet mới. Existing: từ cái đã có. * Generate Dataset : * 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. * 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. * 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 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 vào nguồn dữ liệu. Truy cập dữ liệu một cách tự nhiên: myDataset.myTable.myColumn * 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  Data  DataSet 2. Tạo lược đồ cho Dataset từ Database hoặc XML * Xem Dataset : Chọn dataset cần xem double click Ví dụ: Double click Dataset1.xsd * Sơ đồ Schema của Dataset.xsd * Tạo khoá ngoại HANGHOA tham chiếu LOAIHANG * Tạo 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 * Thành phần DataView * Mỗi 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. 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 hàng. RowFilter: Lọc * Tạo DataGird + Click Toolbox + Click Windows Form + Click DataGird + Click Application (Project mà đang tạo) * Thành phần DataGird: DataSource, DataMember, DataBind, Auto Format Kết gán với DataTable hoặc DataView thông qua tính chất DataSource và DataMember. Phương pháp DataBind được sử dụng để cập nhật những thay đổi của nguồn dữ liệu. Có thể sử dụng wizard Auto Format để chọn các tập mẫu của DataGird. * Huỳnh Văn Thâm Sử Dụng DataReader * DataReader Hỗ trợ truy cập dữ liệu nhanh, one-way, read-only. Chỉ đọc dữ liệu từ server từng dòng riêng rẽ nên không tốn bộ nhớ. Chỉ được tạo thông qua phương pháp ExecuteReader của đối tượng Command. Connection phải được mở trước khi gọi ExecuteReader Phương pháp Close của DataReader phải luôn được gọi khi DataReader không còn cần sử dụng để giải phóng Connection. * Các phương pháp và tính chất quan trọng GetSchemaTable Trả về 1 DataTable mô tả lược đồ của tập mẩu tin kết quả truy vấn dữ liệu. * Read Dời sang mẩu tin kế tiếp trong tập kết quả. Close Đóng đối tượng DataReader. NextResult Chuyển sang tập mẩu tin kết quả kế tiếp (trường hợp DataReader chứa nhiều kết quả truy vấn). FieldCount Lấy số lượng các cột trong hàng hiện hành. GetOrdinal(string column) Trả về chỉ số của cột có tên tương ứng. * Phương thức ExecuteReader của Command Cú pháp: reader = command.ExcuteReader(t) t  enum CommandBehavior enum CommandBehavior CloseConnection SchemaOnly SingleResult SingleRow Vd: command.ExecuteReader(CommandBehavior.CloseConnection | CommandBehavior.SingleRow) * Truy cập DataReader với nhiều tập mẩu tin kết quả String sql = “select * from HangHoa; select * from KhachHang” SqlCommand command = new SqlCommand(sql,conn) conn.Open() SqlDataReader reader = command.ExecuteReader(); do { while (reader.Read()) { } } while (reader.NextResult()); * Chương 6: Sử Dụng DataAdapter * DataAdapter làm việc với Dataset để cung cấp cơ chế truy cập dữ liệu không giữ kết nối. Mô hình thừa kế của các lớp DataAdapter trong .Net FrameWork : DataAdapter DbDataAdapter SqlDataAdapter OleDataAdapter OdbcDataAdapter OracleDataAdapter DataAdapter quản lý 4 command ở dạng tính chất lớp : SelectCommand, InsertCommand, UpdateCommand, DeleteCommand. * Phương thức Fill Sử dụng command SelectCommand để truy vấn dữ liệu, kết quả trả về được đ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ở và đóng Connection trước và sau khi thực hiện phương thức Fill * Điền dữ liệu vào DataSet đã có sẵn Schema Xác định tính chất MissingSchemaAction của DataAdapter : DataAdapter.MissingSchemaAction = MissingSchemaAction.Add Bổ sung mọi cột còn thiếu trong Schema DataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey Bổ sung mọi cột còn thiếu trong Schema, cập nhật khóa chính DataAdapter.MissingSchemaAction = MissingSchemaAction.Error Phát sinh ngoại lệ (Exception) với từng cột bị thiếu DataAdapter.MissingSchemaAction = MissingSchemaAction.Ignore Bỏ qua mọi cột thiếu * Phương thức FillSchema Schema : Lược đồ của tập dữ liệu, bao gồm cấu trúc và quan hệ của các bảng dữ 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 * Khi có thao tác thay đổi dữ liệu trong một bảng của DataSet, các dòng bị thay đổi sẽ được ghi nhận qua tính chất RowState. RowState nhận các giá trị : DataRowState.Added Cho biết dòng mới được 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 về tập dữ liệu gốc của DataSet DataRowState.Modified Cho biết dòng đã bị thay đổi DataRowState.Unchanged Dòng không bị thay đổi * Phương thức Update Cập nhật dữ liệu từ DataSet vào cơ sở dữ liệu gốc. Nội dung hoạt động của Update: duyệt qua từng khoản tin trong DataSet, phân tích giá trị RowState và gọi 1 trong 4 command tương ứng của DataAdapter : Select, Insert, Update và Delete. Command Select được định nghĩa ngay từ đầu khi tạo DataAdapter, sử dụng để truy vấn dữ liệu và điền vào DataSet (có thể được định nghĩa tường minh, hoặc thông qua hàm dựng của DataAdapter). Các command Insert, Update, Delete sử dụng cho phương thức Update, có thể được người sử dụng định nghĩa hoặc được phát sinh tự động bằng cách sử dụng CommandBuilder : Dim SqlCommandBuilder as new SqlCommandBuilder(DataAdapter) * Hạn chế khi sử dụng CommandBuilder : Chỉ sử dụng cho DataAdapter kết nối đến 1 bảng dữ liệu. Bảng dữ liệu phải được chỉ định khóa chính. Định nghĩa các command Insert, Update, Delete cho DataAdapter: tạo các command với CommandText có chuỗi SQL tương ứng, sử dụng các tham số cho các cột dữ liệu.
Tài liệu liên quan