Bài Viết về Webservice


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.

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.

Theo blogthuthuat.com

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s