19
Nhất Nghệ, 11/04/2022 Hội thảo Web Service & Ứng dụng BÀI TẬP LAB 1 Mục tiêu Làm quen tạo Web Service đơn giản Viết Web Service có tương tác dữ liệu Xuất bản Web Service lên Internet Sử dụng Web Service 2 Cách tạo Web Service 2.1 Tạo CSDL trong SQL Server Ths. Lương Trần Hy Hiến – www.hoithaows.tk 1

: LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

BÀI TẬP LAB

1 Mục tiêu Làm quen tạo Web Service đơn giản Viết Web Service có tương tác dữ liệu Xuất bản Web Service lên Internet Sử dụng Web Service

2 Cách tạo Web Service

2.1 Tạo CSDL trong SQL Server

Khởi động SQL Server Management Studio, mở file DBDemoSrcipt.sql sẵn có rồi bấm F5.

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 1

Page 2: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

2.2 Viết Web Service để tương tác với CSDL2.2.1 T o m i Project d ng Empty Website:ạ ớ ạ

Cấu trúc Website sau khi tạo:

2.2.2 S d ng LINQ to SQL k t n i t i CSDLử ụ ế ố ớVào menu View chọn Server Explorer

Click chọn Connect to Database (hình phích cắm điện)

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 2

Page 3: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

Chọn Data Source là MS SQL Server (nếu có):

Điền thông tin kết nối CSDL:

Servername: . (dấu chấm – (local)) Chọn chế độ chứng thực “Windows Authentication” Chọn Database: DBDemoWS

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 3

Page 4: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

Kết quả sau khi chọn:

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 4

Page 5: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

Tạo mới file LINQ to SQL, đặt tên DBDemoWS:

Kéo thả các đối tượng vào từng khung tương ứng:

Đè giữ phím Ctrl + click chuột vào 2 bảng ChungLoai và SanPham rồi kéo vào vùng số 1.

Kết quả sau khi kéo thả:

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 5

Page 6: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

2.2.3 T o m i Web Serviceạ ớTạo mới Web Service và đặt tên MyWebService.

Tiến hành thêm một số hàm để sử dụng cho bài lab này như sau:

1. Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai2. Hàm trả về danh sách ChungLoai3. Hàm trả về thông tin của 1 ChungLoai theo MaLoai4. Hàm trả về danh sách SanPham5. Hàm trả về danh sách SanPham theo MaLoai6. Hàm trả về thông tin của một SanPham theo MaSP7. Hàm xóa ChungLoai theo MaLoai8. Hàm xóa SanPham theo MaSP

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 6

Page 7: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

Code xử lý:

/// <summary>/// MyWebService : Lấ�y thông tin sa�n phấ�m, chu�ng loại/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // [System.Web.Script.Services.ScriptService]public class MyWebService : System.Web.Services.WebService {

//Khai báo lệnh làm việc với CSDL DBDemoWSDataContext db = null; public MyWebService () {

//Uncomment the following line if using designed components //InitializeComponent(); db = new DBDemoWSDataContext(); }

[WebMethod] public string HelloWorld() { return "Hello World"; }

//Hàm đế�m xem có bao nhiếu danh mục trong ba�ng ChungLoai [WebMethod] public int DemChungLoai() { return db.ChungLoais.Count(); }

//2- Hàm tra� vếG danh sách ChungLoai [WebMethod] public List<ChungLoai> LayDSChungLoai() { List<ChungLoai> mylist = db.ChungLoais.ToList(); foreach (ChungLoai c in mylist) c.SanPhams.Clear(); return mylist; }

//3- Hàm tra� vếG thông tin cu�a 1 ChungLoai theo MaLoai [WebMethod] public ChungLoai LayChungLoai(int maloai) {

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 7

Page 8: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

ChungLoai c = db.ChungLoais.SingleOrDefault(x => x.MaLoai == maloai); c.SanPhams.Clear(); return c; }

//4- Hàm tra� vếG danh sách SanPham [WebMethod] public List<SanPham> LayDSSanPham() { List<SanPham> dsSP = db.SanPhams.ToList(); foreach (SanPham p in dsSP) p.ChungLoai = null; return dsSP; }

//5- Hàm tra� vếG danh sách SanPham theo maloai [WebMethod] public List<SanPham> LayDSSanPhamTheoMaLoai(int maloai) { List<SanPham> dsSP = db.SanPhams.Where(x => x.MaLoai == maloai).ToList(); foreach (SanPham p in dsSP) p.ChungLoai = null; return dsSP; }

//6- Hàm tra� vếG thông tin cu�a một SanPham theo masp [WebMethod] public SanPham LaySanPham(int masp) { SanPham p = db.SanPhams.SingleOrDefault(x => x.MaSP == masp); p.ChungLoai = null; return p; }

//7- Hàm xóa ChungLoai theo ID [WebMethod] public bool XoaChungLoai(int maloai) { try { ChungLoai cate = LayChungLoai(maloai); db.ChungLoais.DeleteOnSubmit(cate); db.SubmitChanges(); }

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 8

Page 9: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

catch { return false; } return true; }

//8- Hàm xóa SanPham theo ID [WebMethod] public bool XoaSanPham(int masp) { try { SanPham p = LaySanPham(masp); db.SanPhams.DeleteOnSubmit(p); db.SubmitChanges(); } catch { return false; } return true; }

//9 -Lấ�y Loại tra� vếG JSON [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string LayDSChungLoaiJSON() { List<ChungLoai> mylist = db.ChungLoais.ToList(); foreach (ChungLoai c in mylist) c.SanPhams.Clear();

return new JavaScriptSerializer().Serialize(mylist); }}

Tiến hành chạy thử bằng cách bấm phím F5 trên Web Service đang chọn.

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 9

Page 10: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 10

Page 11: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 11

Page 12: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

2.3 Đưa CSDL và .NET webservice lên hosting

3 Sử dụng Web service

3.1 Ứng dụng Web3.1.1 Ánh x Webservice đ s d ng:ạ ể ử ụBấm chuột phải vào Project/ chọn Add Service Reference:

Màn hình chọn WebService hiển thị ra như bên dưới đây:

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 12

Page 13: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

Sau đó chọn Advanced:

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 13

Page 14: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

Bấm Add Reference.

3.1.2 S d ngử ụ

<asp:Button ID="btnLayChungLoai" runat="server" Text="Lấ�y Loại" OnClick="btnLayChungLoai_Click" /> <asp:Button ID="btnLaySanPham" runat="server" Text="Lấ�y Sa�n phấ�m" OnClick="btnLaySanPham_Click" /> <br /> Loại: <asp:DropDownList ID="ddlLoai" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlLoai_SelectedIndexChanged"> </asp:DropDownList> <asp:GridView ID="gvResult" runat="server" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3"> <FooterStyle BackColor="White" ForeColor="#000066" /> <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" /> <RowStyle ForeColor="#000066" /> <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" /> <SortedAscendingCellStyle BackColor="#F1F1F1" /> <SortedAscendingHeaderStyle BackColor="#007DBB" /> <SortedDescendingCellStyle BackColor="#CAC9C9" /> <SortedDescendingHeaderStyle BackColor="#00547E" /> </asp:GridView>

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 14

Page 15: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

Code:

public partial class DemoLaySanPham : System.Web.UI.Page{ com.somee.hienlthapp.MyWebService test = new com.somee.hienlthapp.MyWebService(); bool isFinish = false; protected void Page_Load(object sender, EventArgs e) { } protected void btnLayChungLoai_Click(object sender, EventArgs e) { List<com.somee.hienlthapp.ChungLoai> listCate = test.LayDSChungLoai().ToList(); gvResult.DataSource = listCate; gvResult.DataBind(); ddlLoai.DataSource = listCate; ddlLoai.DataTextField = "TenLoai"; ddlLoai.DataValueField = "MaLoai"; ddlLoai.DataBind(); } private void LaySanPhamTheoLoai(object sender, EventArgs e) { int masp = int.Parse(ddlLoai.SelectedValue); List<com.somee.hienlthapp.SanPham> dsSP = test.LayDSSanPhamTheoMaLoai(masp).ToList(); gvResult.DataSource = dsSP; gvResult.DataBind(); } protected void btnLaySanPham_Click(object sender, EventArgs e) { List<com.somee.hienlthapp.SanPham> dsSP = test.LayDSSanPham().ToList(); gvResult.DataSource = dsSP; gvResult.DataBind(); } protected void ddlLoai_SelectedIndexChanged(object sender, EventArgs e) { int masp = int.Parse(ddlLoai.SelectedValue); List<com.somee.hienlthapp.SanPham> dsSP = test.LayDSSanPhamTheoMaLoai(masp).ToList(); gvResult.DataSource = dsSP; gvResult.DataBind(); }}

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 15

Page 16: : LAB Day 1 · Web viewTiến hành thêm một số hàm để sử dụng cho bài lab này như sau: Hàm đếm xem có bao nhiêu danh mục trong bảng ChungLoai Hàm trả

Nhất Nghệ, 16/05/2023 Hội thảo Web Service & Ứng dụng

3.2 Sử dụng WS ở Windows Forms

3.3 Sử dụng WS ở Android

-----------------------------------------------------oOo-------------------------------------------------

Ths. Lương Trần Hy Hiến – www.hoithaows.tk 16