RSSAsp.net

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ô [...]

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! :D

Giup do code Web Service

Web Service

Bạn có thể thấy được phần Help của Visual sẽ giúp chúng ta thấy được các đối số của hàm từ trên Web Service từ đó viết sẽ dễ dàng hơn, và tránh nhầm lẫn đối số.

Kết luận: Vậy xem như chúng ta đã hoàn thành phần Thêm, xóa, sửa cũng như lấy dữ liệu từ CSDL dùng Web Service trong ASP.Net. Mong là bài này sẽ giúp các bạn trong việc học tập. Chúc thành công!

Nếu bạn thấy bài viết hữu ích, hãy nhấn +1 và các liên kết chia sẻ để website ngày càng phát triển hơn. Xin cám ơn bạn!

Nếu là khách, bạn phải đăng ký tài khoản và kích hoạt tài khoản để bình luận được hiển thị ở đây.
Thông tin kích hoạt gửi đến mail của bạn.

Tin mới hơn

Tin cũ hơn

Lên trên đầu