2011-05-27 59 views
2

當用戶點擊兩次以上的搜索按鈕時,我給出了給定代碼的下列錯誤信息。有人可以幫助我做錯了什麼。變量名'@Param'已經被聲明

變量名'@Param'已經被聲明爲 。在查詢批次或存儲的 過程中,變量名稱必須是 。

protected void btnSearch_Click(object sender, EventArgs e) 
{ 
    DS.SelectCommand = 
     "SELECT ReportName, ReportType, 
     FROM Table 
     WHERE ReportName LIKE @param 
     ORDER BY ReportType Desc"; 
    DS.SelectParameters.Add("Param", searchTxtBox.Text.Replace("'", "''")); 
    DS.DataBind(); 
    ListView1.DataBind();    
} 
+0

您是否嘗試先清除所有的'DS.SelectParameters'? (在'DS.SelectCommand'行之前),所以每次都有一組新的參數? – lhan 2011-05-27 13:10:22

回答

5

嘗試

DS.SelectCommand = 
    "SELECT ReportName, ReportType, 
    FROM Table 
    WHERE ReportName LIKE @param 
    ORDER BY ReportType Desc"; 
DS.SelectParameters.Clear(); 
DS.SelectParameters.Add("Param", searchTxtBox.Text.Replace("'", "''")); 
+0

謝謝@Bala,我把它放在頂部和底部,而不是你指定的地方。乾杯!非常棒! – 2011-05-27 13:35:23

0

正如我不能看到DS定義我不能肯定,但我懷疑你使用相同的數據源與其他地方不同的Param。爲每個不同的查詢使用不同的來源。