Thành viên
 
 
 
Bài Viết về Webservice.
  Trung bình: 3.4 (Đã có 29 lượt đánh giá)
   15/08/2008 10:00 PM

Bài viết này mình sẽ hướng dẫn các bạn làm thế nào để tạo một Webservice và cách sử dụng một webservice đã có ở trên máy local và ở trên mạng. 

Trước hết, ta cần khởi tạo một ứng dụng webservice. Đây là một ứng dụng để kiểm tra tỉ giá ngoại tệ và update các loại tỉ giá đó. CSDL là sql server 2000. gồm có 2 bảng có đính kèm luôn trong ứng dụng.

Ta tạo một webservice có tên là GetExchangeRateService có nội dung như sau:

        [WebMethod]
        public string GetExchangeRate(string currency1, string currency2)
        {

            SqlConnection con = new SqlConnection("Server=(local);Database=AptechBankDB;UID=sa;PWD=sa");
            con.Open();

            DataSet ds = new DataSet();

            SqlCommand cmd = new SqlCommand("pr_GetExchangeRate", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@Currency1",SqlDbType.VarChar));
            cmd.Parameters.Add(new SqlParameter("@Currency2", SqlDbType.VarChar));

            cmd.Parameters["@Currency1"].Value = currency1;
            cmd.Parameters["@Currency2"].Value = currency2;

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return ds.Tables[0].Rows[0]["Rate"].ToString();
            }
            else
            {
                return "0";
            }

        }

Phương thức này có 2 tham số: tham số thứ 1 là ngoại tệ quy đổi, tham số thứ 2 là tiền quy đổi. Giá trị trả về là tỉ giá của 2 loại tiền tệ đó.

Ta tạo websivice thứ 2 có tên là: UpdateExchangeRateService

        [WebMethod]
        public bool UpdateExchangeRate(string currency1, string currency2, float rate, string email, string pass)
        {
            SqlConnection con = new SqlConnection("Server=(local);Database=AptechBankDB;UID=sa;PWD=sa");
            con.Open();

            DataSet ds = new DataSet();

            SqlCommand cmd = new SqlCommand("pr_Check", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@Email", SqlDbType.VarChar));
            cmd.Parameters.Add(new SqlParameter("@Password", SqlDbType.VarChar));

            cmd.Parameters["@Email"].Value = email;
            cmd.Parameters["@Password"].Value = pass;

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);

            if (ds.Tables[0].Rows.Count > 0)
            {
                               
                SqlCommand cmdUpd = new SqlCommand("pr_UpdateExchangeRate", con);
                cmdUpd.CommandType = CommandType.StoredProcedure;
                cmdUpd.Parameters.Add(new SqlParameter("@Currency1", SqlDbType.VarChar));
                cmdUpd.Parameters.Add(new SqlParameter("@Currency2", SqlDbType.VarChar));
                cmdUpd.Parameters.Add(new SqlParameter("@Rate", SqlDbType.Float));

                cmdUpd.Parameters["@Currency1"].Value = currency1;
                cmdUpd.Parameters["@Currency2"].Value = currency2;
                cmdUpd.Parameters["@Rate"].Value = rate;

                int i = cmdUpd.ExecuteNonQuery();

                if (i > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }

Phương thức này có 5 tham số. 2 tham số đầu tiên là các tỉ giá ngoại tệ để update, rate ở đây là tỉ lệ giữa các ngoại tệ đó.

Còn 2 tham số thứ 4 và 5 dùng để kiểm tra sự hợp pháp của quyền admin.

Tiếp theo, ta xây dựng một giao diện website để sử dụng các webservice mà mình vừa tạo. Chú ý ta phải add Web Reference vào website này. Đối với VS 2005, có 2 cách để chèn vào, đó là sử dụng luôn webservice mình tạo trong cùng một solution, thứ 2 là webservice ở trên local, tức là mình phải đặt service đó trong IIS hoặc chọn nò là websharing.

Web Reference

Với việc kiểm tra tỉ giá ngoại tệ, ta chỉ cần dùng dòng lệnh sau:

localhost.GetExchangeRateService getEx = new localhost.GetExchangeRateService();

lblResults.Text = getEx.GetExchangeRate(txtCurrency1.Text, txtCurrency2.Text);

Tương tự như trên, ta làm phần update tỉ giá:

localhost.UpdateExchangeRateService up = new localhost.UpdateExchangeRateService();

        bool isTrue = up.UpdateExchangeRate(txtCurrency1.Text, txtCurrency2.Text, float.Parse(txtRate.Text), txtEmail.Text, txtPass.Text);

        if (isTrue)
        {
            lblResults.Text = "Update Successful!";
        }
        else
        {
            lblResults.Text = "Update fail!";
        }

Trên đây là một ứng dụng nhỏ về xây dựng một webservice. bạn có thể download mã nguồn tại đây.


Gửi bởi: ngocdv
Lượt xem: 12396

 
bui thang 16/08/08 07:15 PM
bai viết hay á ! nhưng em là người mới cho nên mấy dòng lệnh đó khó hiễu đối với em. diển dai thêm ti nưa thi hay a'

ngocdv 17/08/08 10:59 PM
có gì không hiểu em cứ nói luôn.

interista2287 29/08/08 04:08 PM
em muốn tự thiết kế 1 website từ đầu nhưg chưa có mấy kiến thức thì có mất nhiều tgian học ko anh?Đọc bài of anh em ko hiểu j:D

nguyenhuuminh1984 30/08/08 04:13 PM
cai nay anh viet bang notepad ha anh? hay ngon ngu lap trinh nao khac??

STV 15/09/08 08:47 AM
Có bác nào dạy Dreamwaver , sử dụng PHP và CSS ở HN ko dạy tớ với
YM : Meo_Digital
Tel : 0169 2 087 043
Mail : tunguyen.1506@gmail.com

nguyenhuudong 02/10/08 08:44 AM
cac pro chi ro them chuc nua di

sangth147 06/10/08 09:33 AM
rat hay

ngochung 24/10/08 12:52 PM
Em chào các bác, em đang tìm hiểu về webservice đề là một website cung cấp thông tin trực tuyến, bác nào có tài liệu hướng dẫn cách làm thì chỉ em với. Em cám ơn nhìu. Nếu bác nào có code thì em cám ơn rất nhiều (ht).

suppercop 09/11/08 02:06 AM
Hay ...thế tôi dung mô hình 3 lớp thì làm sao ? có Movie clip hướng dẫn ko bạn ? Bãn chắc chuyên về DOTNET lắm ....qua mail chúng ta trao doi thêm...

coclongxu 03/03/09 10:43 AM
thanks!! bài viết khá chi tiết .

MThanh 05/03/09 04:20 PM
Bác này viết tóm tắt mất mấy bước quan trọng rồi, những bước cần cho người mới ko có. chắc những ng biết chút chút về webservice sẽ hiểu dc, còn người mới thì pó tay, ko biết bắt đầu từ đâu (VD: có phải cài IIS ko, khi cấu hình để chạy thử thì đặt ở đâu? người dùng sẽ sử dụng nó ntn, muốn tao webservice mới từ ban đầu thì phải qua những bước ntn)... mình góp ý vậy áh,

biensao 31/03/09 11:02 AM
Đúng rồi, bác viết chi tiết hơn dành chơngì mới bắt đầu đi

Hlam 10/06/09 11:24 AM
bai viet kha lam

nguyenthaisang 07/07/09 11:52 PM
minh dang gap chut van de ,minh can lam mot web bang asp.net co ai biet xin chi giup minh,can soure nua

HieuNguyenTrung 18/07/09 09:36 AM
Thanks ! Bạn , mình mới vào nghề lập trình cho nên những kiến thức này rất bổ ích và quan trọng. Chúc bạn sức khỏe và thành công !

HieuNguyenTrung 18/07/09 01:42 PM
Thanks ! Bạn , mình mới vào nghề lập trình cho nên những kiến thức này rất bổ ích và quan trọng. Chúc bạn sức khỏe và thành công !

viet nam 19/08/09 09:52 AM
Kết hợp của webservices với ajax jquery?
Ví dụ như control login logout của trang [link]nhaccuatui.com[link]

nguoicungkho 01/10/09 09:30 AM
Hi! Mình thấy bạn viết webservice này khá hay nhưng mình có 1 thắc mắc là trong này bạn có chữ localhost, thế khi quăng web lên host thì vẫn giữ nguyên hay đổi và nếu đổi thì đổi ntn? thanks

kokichi 05/10/09 02:48 PM
Hay, đáng để mình học hỏi.

ngocmai 08/01/10 04:06 PM
mình đang làm đồ án tốt nghiệp về web service có bác nào biết chút chút chỉ gium em ko?hòm thư của em là ngocmai295@gmail.com
thanks

Quảng cáo Hải Phòng
Quảng cáo Hải Phòng
NHẬN XÉT CỦA BẠN
Trung bình: 3.4   
Kiểu gõ: Off Telex VNI VIQR Tổng hợp (Telex, Vni, Viqr)
Họ Tên:
Hòm thư:
Nội Dung:
Số ký tự còn lại: 3500