1

データベースを更新する Web サービス機能があります。Web アプリケーションから呼び出したいのですが、うまくいきません。Web サービスを呼び出した後は、Web サービスを介して更新できますが、Web アプリケーションを介して更新することはできません。サービス関数を呼び出すコードは正しいですか?

これが私の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アプリケーションはデータをデータベースに更新できますが、すべての行で更新されたデータはすべて同じです。しかし、Session["username"] に続いて WHERE ステートメントをそこに戻すと、Web アプリケーションの更新でデータが保存されません。これについて何か助けはありますか?セッションを使用してデータを更新する方法が本当にわかりません。

4

2 に答える 2

0

Add your web service in to your service reference.

It will generate a client.Create a client for your service. And you can access the method through your client.

Yourservice.ServiceClient client = new  Yourservice.ServiceClient();
client.SellItem();
于 2013-01-24T07:11:59.797 に答える
0

できることは、try catch を追加して、例外をキャッチできるかどうかを確認し、エラーがある場合は文字列を返すことです。

于 2013-01-24T08:19:10.333 に答える