0

入力をWebサービスに送信するときに問題に直面しています。

ここに私のコード:

Protected Sub Button5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Saman.Click

    SamanDB.DataSource = Nothing
    SamanDB.DataBind()

    Dim str As String
    str = TextBox1.Text

   >> Dim copsdataXML As String = myCOPSWeb.Summon(str)

    Dim dsReader As StringReader = New StringReader(copsdataXML)
    Dim DS As DataSet = New DataSet()
    DS.ReadXml(dsReader)

    SamanDB.DataSource = DS  
    SamanDB.DataBind()
End Sub

そしてここにウェブサービス:-

public string Summon(string Input1)
{
    SqlDataAdapter dbadapter = null;
    DataSet returnDS = new DataSet();

    using (SqlConnection dbconn = new SqlConnection(
        "Server=11.2.6.10;"
        + "Database=POLIS;"
        + "User ID=*******;"
        + "Password=*******;"
        + "Trusted_Connection=False;"))
    {

        SqlCommand cmd = new SqlCommand();

        string sqlQuery = "select * from SUMMON where ic_no=@Input1";
       
        cmd.CommandText = sqlQuery;
        cmd.Connection = dbconn;
        dbadapter = new SqlDataAdapter(cmd);

        cmd.Parameters.Add("@Input1", SqlDbType.VarChar).Value = Input1;

        dbadapter.Fill(returnDS);
    }

    return returnDS.GetXml();
}

TextBox1.Text を Input1 として Web サービスに送信したいと考えています。これが私が得る例外です:-

SoapException がユーザー コードによって処理されませんでした。

System.Web.Services.Protocols.SoapException: サーバーは要求を処理できませんでした。---> System.Data.SqlClient.SqlException: パラメータ化されたクエリ '(@Input1 varchar(8000))select * from SUMMON where ic_no=@Input1' には、指定されていないパラメータ @Input1 が必要です。

4

2 に答える 2

0

編集:

この順番を試す

  cmd.Parameters.Add("@Input1", SqlDbType.VarChar).Value = Input1;
  dbadapter = new SqlDataAdapter(cmd);
于 2012-05-04T03:22:18.830 に答える
0

Summon メソッドで、次の行を置き換えてみてください。

cmd.Parameters.Add("@Input1", SqlDbType.VarChar).Value = Input1;

これとともに:

cmd.Parameters.AddWithValue("@Input1", Input1);
于 2012-05-04T03:23:38.483 に答える