05/10/2018, 11:12

Thêm, xóa, sửa CSDL dùng Web Service trong ASP.Net

Như đã nói ở bài trước hôm nay mình sẽ giới thiệu tiếp tục cho các bạn cách tương tác CSDL với Web Service ASP.Net cụ thể là thêm xóa sửa và lấy dữ liệu từ CSDL SQL Server, tiếp tục bài đề demo là CSDL người dùng mà mình đã làm ở bài mô hình 3 lớp trong ASP.Net Cũng nói lại các phần mình đã làm ...

Như đã nói ở bài trước hôm nay mình sẽ giới thiệu tiếp tục cho các bạn cách tương tác CSDL với Web Service ASP.Net cụ thể là thêm xóa sửa và lấy dữ liệu từ CSDL SQL Server, tiếp tục bài đề demo là CSDL người dùng mà mình đã làm ở bài mô hình 3 lớp trong ASP.Net

Cũng nói lại các phần mình đã làm ở bài sử dụng cơ bản về Web Service trong ASP.Net chúng ta đã biết cách khai báo, kết nối, và gọi các phương thức, hàm thông qua web service để sử dụng. Bây giờ chỉ việc kế thừa các thành phần đó mà thôi. Đầu tiên lúc nào cũng mô tả CSDL cho các bạn nắm cũng như tiện cho việc demo ở bên dưới được dể dàng hơn.

mo ta csdl demo web service

Mô tả CSDL

Bạn phải nắm các thuộc tính trong đó sẽ làm việc tốt hơn. Giờ bạn tạo một dự án Web Service để test, xem lại bài mình giới thiệu hôm trước đã làm rồi nên h chúng ta sẽ đi vào trong chi tiết các hàm trong Web Service luôn. Ở đây mình sẽ xây dựng các hàm như: Lấy dữ liệu, Thêm dữ liệu, Cập nhật dữ liệu và xóa dữ liệu trong bảng Người Dùng.

Mình sẽ vào file Service1.asmx.cs để code các hàm cần xử lý trong Web Service, như đã nêu mình sẽ có các hàm với các đối số tướng ứng như sau:

    SqlConnection con;
    SqlDataAdapter da;
    SqlCommand cmd;
    DataSet ds;

    [WebMethod]
    public DataSet GetAccount()
    {
        con = new SqlConnection("server=.; database=AccountDB; integrated security = true;");
        da = new SqlDataAdapter("Select * From NguoiDung", con);
        ds = new DataSet();
        da.Fill(ds);
        return ds;
    }

    [WebMethod]
    public void InsertAccount(string mand, string hoten, string tendangnhap, string matkhau, bool gioitinh, string email)
    {
        con = new SqlConnection("server=.; database=AccountDB; integrated security = true;");
        con.Open();
        cmd = new SqlCommand("INSERT INTO NguoiDung VALUES('" + mand + "', '" + hoten + "', '" + tendangnhap + "', '" + matkhau + "', '" + gioitinh + "', '" + email + "')", con);
        cmd.ExecuteNonQuery();
        con.Close();
    }

    [WebMethod]
    public void UpdateAccount(string mand, string hoten, string tendangnhap, string matkhau, bool gioitinh, string email)
    {
        con = new SqlConnection("server=.; database=AccountDB; integrated security = true;");
        con.Open();
        cmd = new SqlCommand("Update NguoiDung Set HoTen='" + hoten + "', TenDangNhap='" + tendangnhap + "', MatKhau='" + matkhau + "', GioiTinh='" + gioitinh + "', Email='" + email + "' Where MaND='" + mand + "'", con);
        cmd.ExecuteNonQuery();
        con.Close();
    }

    [WebMethod]
    public void DeleteAccount(int mand)
    {
        con = new SqlConnection("server=.; database=AccountDB; integrated security = true;");
        con.Open();
        cmd = new SqlCommand("Delete From NguoiDung Where MaND='" + mand + "'", con);
        cmd.ExecuteNonQuery();
        con.Close();
    }

Trong phần này bạn sẽ thêm vào các thư viện cần thiết như sau:

     using System.Data;
     using System.Data.SqlClient;
Giải thích hàm trong file Web Service

Lấy dữ liệu (GetAccount): mình trả về kiểu DataSet vì sẽ lấy ra được một bảng hay nhiều bảng dữ liệu tùy ý, ở đây chỉ là 1 bảng.
Hàm thêm xóa sửa (InsertAccount, DeleteAccount, UpdateAccount) đây chỉ khác nhau về câu truy vấn, khi vần ở phần nào thì đối số ở hàm phải tương ứng và thích hợp.

Tiếp theo chúng ta tạo một kết nối với Web Service có tên là “account” (bạn chọn tên nào thì tùy, ai chưa biết thì xem lại bài trước). Sau khi đã có kết nối bạn sẽ thiết kế một giao diện để mình test các chức năng trong file Web Service vừa mới tạo ra. Tạo giao diện tương tự như bài mô hình 3 lớp trong asp.net hôm trước mình demo.

Giao diện Demo thêm xóa sửa

Giao diện Demo thêm xóa sửa

Lấy dữ liệu dùng Web Service

Trong sự kiện PageLoad mình sẽ thực hiện chức năng lấy dữ liệu lên bằng cách khai báo đối tượng Web Service và sử dụng hàm GetAccount() từ đó đổ vào trong GridView (gvNguoiDung) qua DataSource.

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            account.Service1 sv1 = new account.Service1();
            gvNguoiDung.DataSource = sv1.GetAccount();
            gvNguoiDung.DataBind();
        }
    }
Lay du lieu dung Web Service ASP.Net

Lấy dữ liệu dùng Web Service

Chức năng thêm xóa sửa dùng Web Service

Như mình đã nói, các tính năng này cũng chỉ khác nhau ở phần truy vấn, cấu trúc thì giống nhau hoàn toàn. Do đó mình chỉ demo phần InsertAccount và các phần khác thì gần như là tương tự cứ thế mà chiến. Bạn kích vào sự kiện thêm. Và code như sau:

    protected void btThem_Click(object sender, EventArgs e)
    {
        account.Service1 sv1 = new account.Service1();

        string mand = txtMaNguoiDung.Text;
        string hoten = txtHovaTen.Text;
        string tendn = txtTenDangNhap.Text;
        string matkhau = txtMatKhau.Text;
        bool gioitinh = bool.Parse(radioGioiTinh.SelectedValue);
        string email = txtEmail.Text;
        sv1.InsertAccount(mand, hoten, tendn, matkhau, gioitinh, email);
    }

Chúng ta sẽ khai báo các biến tương ứng với hàm đã viết trong Web Service và gọi mà đó với các đối số là OK không có việc gì xảy ra!

0