2012-05-03 50 views
-1

從標題中您可能知道從sql數據庫查詢時無法獲得結果。 這裏是我的代碼:根據webservice中的用戶輸入查詢sql時無法顯示結果

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

    using (SqlConnection dbconn = new SqlConnection(
     "DatabaseConnection")) 
    { 
     SqlCommand cmd = new SqlCommand(); 
     //string sqlQuery = "select * from SUMMON"; 

     string sqlQuery = "select * from SUMMON where [email protected]"; 

     cmd.CommandText = sqlQuery; 
     cmd.Connection = dbconn; 
     dbadapter = new SqlDataAdapter(cmd); 

     dbadapter.Fill(returnDS); 
    } 

    return returnDS.GetXml(); 
} 

然後我得到這個異常: -

System.Data.SqlClient.SqlException:必須聲明標量變量" @輸入1 "。

+1

您不應編輯您的問題以包含答案。只需點擊答案旁邊的大複選標記按鈕即可說出正確答案。 – MPelletier

+0

對不起,我沒有編輯我的問題,我沒有把答案放在那裏?..爲什麼你這樣說呢?無論如何,謝謝你的信息.. :) –

+1

沒關係,你在這裏學習,就像我們所有人。您已經在頂部編輯了該問題,在下面添加了答案,並用許多'@'字符分隔。我回到之前的版本,並格式化了一下。 – MPelletier

回答

1

您需要添加一個名爲@輸入1到CMD參數:

cmd.Parameters.Add(new SqlParameter("@Input1", input1)); 

This article解釋瞭如何使用數據適配器參數。

+0

cmd.Parameters.Add(「@ Input1」,Input1); string sqlQuery =「select * from SUMMON where ic_no ='Input1'」; –

+0

我做了,但仍然不能在XML中得到輸出。 –

+0

它引發此異常:: SqlParameterCollection只接受非空SqlParameter類型對象,而不是Int32對象。 –