Trang chủ » ASP.NET » 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

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.

 

webReference (400 x 285)

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!";
}

rê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

Bình luận

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s