我有一个Web服务功能,用于更新我的数据库。我想从我的网络应用程序中调用它,但它不起作用。在我打电话给我的网络服务后,它可以通过我的网络服务更新,但不能更新我的网络应用程序。我调用服务功能的代码是否正确?
这是我的网络服务更新功能:
[WebMethod(EnableSession = true)]
public string sell_item(string name, string photo, string description, string initial_price, string bid_time)
{
SqlConnection con = new SqlConnection("Data Source=USER-PC;Initial Catalog=Bidding;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand("UPDATE login SET name = @name, photo = @photo, description = @description, initial_price = @initial_price, bid_time = @bid_time where username='"+ Session["username"] +"'", con);
cmd.Parameters.AddWithValue("@name", name);
cmd.Parameters.AddWithValue("@photo", photo);
cmd.Parameters.AddWithValue("@description", description);
cmd.Parameters.AddWithValue("@initial_price", initial_price);
cmd.Parameters.AddWithValue("@bid_time", bid_time);
cmd.ExecuteNonQuery();
con.Close();
return "Product has been upload successfully!";
}
这是我调用函数的Web应用程序代码:
public partial class bidpage : System.Web.UI.Page
{
abc.Service a = new abc.Service();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = Convert.ToString(a.sell_item(Convert.ToString(TextBoxProduct.Text), Convert.ToString(TextBoxPhoto.Text), Convert.ToString(TextBoxDescription.Text), Convert.ToString(TextBoxPrice.Text), Convert.ToString(TextBoxBidTime.Text)));
}
}
在我的sqlcommand中,我尝试删除WHERE,我的Web应用程序可以将数据更新到数据库,但是对于所有行,更新的数据都是相同的。但是当我在那里放回WHERE语句后跟Session [“username”]时,我在Web应用程序中的更新将不会存储任何数据。 对此有何帮助?我真的不知道如何使用session更新我的数据。
答案 0 :(得分:0)
将您的网络服务添加到您的服务参考中。
它将生成一个客户端。为您的服务创建一个客户端。您可以通过客户端访问该方法。
Yourservice.ServiceClient client = new Yourservice.ServiceClient();
client.SellItem();
答案 1 :(得分:0)
你可以做的是添加一个try catch,看看是否可以捕获异常,如果有错误则返回一个字符串。