Ví dụ: Tạo menu đươn giản
2.16 Điều khiển kiểm tra dữ liệu
Như các bạn đã biết, mỗi khi PostBack về Server, trang Web ln kiểm tra tính hợp lệdữ liệu (nếu có u cầu khi thiết kế). Nếu dữ liệu khơng hợp lệ (bỏ trống, vi phạm miền giá trị, mật khẩu nhập lại không đúng, …), trang web sẽ không thể PostBack về Server.
a1. Điều khiển Required Field Validator
Điều khiển này được dùng để kiểm tra giá trị trong điều khiển phải được nhập. Sử dụng điều khiển này để kiểm tra ràng buộc dữ liệu khác rỗng(bắt buộc nhập). Thuộc tính
tính này. Giá trị mặc định của thuộc tính này là chuỗi rỗng. a2. Điều khiển Compare Validator
Điều khiển này được dùng để so sánh giá trị của một điều khiển với giá trị của một điều khiển khác hoặc một giá trị được xác định trước.
Thơng qua thuộc tính Operator, chúng ta có thể thực hiện các phép so sánh như: =, <>, >, >=, <, <= hoặc dùng để kiểm tra kiểu dữ liệu (DataTypeCheck).
Sử dụng điều khiển này để kiểm tra ràng buộc miền giá trị, kiểu dữ liệu, liên thuộc tính. Lưu ý: Trong trường hợp không nhập dữ liệu, điều khiển sẽ không thực hiện kiểm tra vi phạm.
Các thuộc tính
thuộc tính Operator = DataTypeCheck thì khơng cần phải xác định giá trị cho thuộc tính này.
r: Qui định phép so sánh, kiểm tra kiểu dữ liệu o Equal: = (Đây là giá trị mặc định) o GreaterThan: >
o GreaterThanEqual: >= o LessThan: <
o NotEqual: <>
o DataTypeCheck: Kiểm tra kiểu dữ liệu oặc so sánh. o String o Integer o Double o Date o Currency
thuộc tính ControlToCompare và ValueToCompare thì giá trị của điều khiển được qui định bởi thuộc tính ControlToCompare được ưu tiên dùng để kiểm tra.
a3. Điều khiển Range Validator
Điều khiển này được dùng để kiểm tra giá trị trong điều khiển phải nằm trongđoạn [min- max]
Lưu ý: Trong trường hợp không nhập dữ liệu, điều khiển sẽ không thực hiện kiểm tra vi phạm. Các thuộc tính liệu sau: o String o Integer o Double o Date o Currency
a4. Điều khiển Regular Expression Validator
Điều khiển này được dùng để kiểm tra giá trị của điều khiển phải theo mẫu được qui định trước:địa chỉ email, số điện thoại, mã vùng, số chứng minh thư, …
Lưu ý: Trong trường hợp không nhập dữ liệu, điều khiển sẽ không thực hiện kiểm tra vi phạm.
Bảng mô tả các ký hiệu thường sử dụng trong Validation Expression
a5. Điều khiển Custom Validator
Sự kiện được
thực hiện ở Server.
Ví dụ: Xử lý kiểm tra dữ liệu nhập tại điều khiển txtSoA có phải là số chẵn hay khơng. a6. Điều khiển Validation Summary
Điều khiển này được dùng để hiển thịra bảng lỗi- tất cả các lỗi hiện có trên trang Web. Nếu điều khiển nào có dữ liệu khơng hợp lệ, chuỗi thơng báo lỗi - giá trị thuộc tính
ErrorMessage của Validation Control sẽ được hiển thị. Nếu giá trị của thuộc tính ErrorMessage
khơng được xác định, thơng báo lỗi đó sẽ khơng được xuất hiện trong bảng lỗi. Các thuộc tính
thơng báo lỗi có được phép hiển thị như cửa sổ MessageBox hay không. Giá trị mặc định của thuộc tính này là False - khơng hiển thị. mặc định của thuộc tính này là True - được phép hiển thị.
Ví dụ:Tạo Thêm tác giả Sử dụng các điều khiển ValidateControl.
Trong ví dụ dưới đây, chúng ta thực hiện kiểm tra dữ liệu nhập trên các điều khiển có trong tác giả.
HD:
- Tạo table 2 cột, 6 dòng
- Tạo 4 textbox, 1 button, 1 label
- Mơ tả thuộc tính khi kiểm tra dữ liệu Điều khiển
(id) Loại(toolbox:Validator) Thuộc tính(properties) Giá trị rfvma_tg RequiredFieldValidator ControlToValidate txtmatg
ErrorMessage Mã TG khơng để
trống
Text (*)
rfvten_tg RequiredFieldValidator ControlToValidate txttentg
ErrorMessage Tên Tg không được
để trống
Text (*)
rfvdiachi_tg RequiredFieldValidator ControlToValidate txtdiachitg
ErrorMessage Địa chỉ Tg không
được để trống
Text (*)
rvdienthoai_
tg RegularExpressionValidator ControlToValidate txtdienthoaitg ValidationExpression p.r.c phone number
ErrorMessage Điện thoại nhập
không đúng
Text (*)
Button1 button Text Thêm mới
vsbang_loi ValidationSummary HeaderText Danh sách các lỗi - chuột phải vào CSDL chọn insertQuery làm như hình:
- nhấn chuột vào thêm mới 2 lần viết code vào:
protected voidButton1_Click(objectsender,EventArgse) {
AccessDataSource1.Insert();
lbthongbao.Text ="THÊM TÁC GIẢ THÀNH CÔNG"; }
Các thơng báo lỗi xuất hiện trên màn hình nhập liệu khi dữ liệu nhập không hợp lệ.
Các thông báo lỗi xuất hiện qua hộp thoại khi dữ liệu nhập không hợp lệ: ShowMessageBox: true
3. Các đối tượng ADO.Net3.1 Truy cập dữ liệu ADO.NET 3.1 Truy cập dữ liệu ADO.NET
ADO.NET Data Providers cho phép truy nhập vào một cơ sở dữ liệu cụ thể, thực hiện các câu lệnh SQL và nhận dữ liệu. Data provider là chiếc cầu nối giữa ứng dụng và nguồn dữ liệu.
Lớp ADO.NET Data Provider bao gồm các thành phần: Connection: Thực hiện connect tới nguồn cơ sở dữ liệu;Command:Thực hiện một câu lệnh SQL hoặc một store procedures; DataReader: Chỉ đọc và nhận dữ liệu từ một truy vấn; DataAdapter thực hiện 2 nhiệm vụ: Điền dữ liệu nhận được vào một DataSet, có thể ghi nhận sự thay đổi dữ liệu trong DataSet.
Ví dụ 1: Tạo kết nối với CSDL Access (code) using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; using System.Data;
using System.Data.OleDb;//access
public partial class csdl1 : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
String StrCnn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("~/qlbanhang.mdb");
OleDbConnection cnn = new OleDbConnection(StrCnn); try { cnn.Open(); Label1.Text = "thanh cong"; }
catch { Label1.Text = "khong thanh cong"; } }
}
Lưu ý: Nếu kết nối với CSDL Access
Provider: Khai báo Data Provider của Access Data Source: Tên tập tin CSDL (.mdb)
User ID: Tên người dùng Password : Mật khẩu
Ví dụ 2:Hiện thị gridview và kết nối với CSDL Access(code)
Sử dụng ADO.NET với đối tượng hiển thị dữ liệu là GridView. Tạo một webform đặt tên là Adonet.aspx, trong webform đó tạo một GridView đặt tên là GridView1. Mã lệnh thực hiện kết nối dữ liệu:
protected void Page_Load(object sender, EventArgs e) {
String StrCnn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("~/QLBansach.mdb");
OleDbConnection cnn = new OleDbConnection(StrCnn); //sql
string strsql = "SELECT * from chude"; DataSet ds = new DataSet();
cnn.Open();
//tao cau lenh thuc thi
OleDbDataAdapter da = new OleDbDataAdapter(strsql, cnn); cnn.Close();
// dien dl
da.Fill(ds, "chude"); //ket qua tra ve datatable
DataTable bang = ds.Tables["chude"]; //truyen 1 bang grirdview
GridView1.DataSource = bang;
//phuong thuc ve lai du lieu tren giao dien GridView1.DataBind();
GridView1.DataMember = "chude"; }
Ví dụ 3: Điều khiển Access Data Source(click chuột)
-Tương tự như điều khiển kết nối cơ sở dữ liêu SQLDataSource dùng để kết nối với cơ sở dữ liệu SQLserver điều khiển kết nối cơ sở dữ liệu AccessDataSource dùng để kết nối với cơ sở dữ liệu Access MDB).
-Như vây khi có nhu cấu kết nối với CSDL Acces ta dùng điều khiển AccessDataSource từ ngăn Data trên thanh Toolbox.
-Ví dụthiết kế trang DanhsachKH.aspx truy xuất và hiện thị Danh sách khách hang từ Table khachhang của CSDL QLBansach.mdb (Access)
+Tạo AccessDataSource vào trang
+ Chọn Configure Data Source . . .: Để thực hiện kết nối
+ Chọn Nút Browse để tìm và chọn CSDL Access : QLBansach (Thông thướng được tổ chức lưu trữ trong thư mục App_Data của ứng dụng)
+Chọn Ok và chọn Next để tiếp tục
+ Xác định nguồn dữ liệu (Khai báo điều kiện và sắp xếp nếu có) tiếp tục chọn Next
+Tạo điều khiển lưới gridView và chỉ định nguồn dữ liệu là AccessdataSource1 vừa tạo