2013-01-20 149 views
1

我想顯示SQL SELECT從代碼後面卻發生這個錯誤的結果:必須聲明標量變量錯誤

必須聲明標量變量「@poNum」。

第75行:sdsUsers.SelectParameters.Add(「@ poNum」,poNum.Text.Trim());
第76行:
第77行:DataView dvMember =(DataView)sdsUsers.Select(DataSourceSelectArguments.Empty); //這裏是錯誤
第78行:DataTable tblMember = dvMember.Table;

代碼:

string connectionString2 = ConfigurationManager.ConnectionStrings["WholesaleConnectionString"].ConnectionString; 
string selectSql = "SELECT invoiceNum, poNum FROM SendInvoice where poNum = @poNum"; 

SqlDataSource sdsUsers = new SqlDataSource(connectionString2, selectSql); 
sdsUsers.SelectParameters.Clear(); 
sdsUsers.SelectParameters.Add("@poNum", poNum.Text.Trim()); 

DataView dvMember = (DataView)sdsUsers.Select(DataSourceSelectArguments.Empty); //error occured here 
DataTable tblMember = dvMember.Table; 

for(int i=0;i<tblMember.Rows.Count;i++) { 
      if (i==0){ 
      Label aaa = new Label(); 
      aaa.Text = tblMember.Rows[i].ItemArray[0].ToString(); 
      } 
     } 

我堅持這個問題好幾天,我無法找到一個解決辦法

+0

考慮使用ADO.NET ['SqlDataAdapter'](http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldataadapter.aspx)類而不是ASP.NET'SqlDataSource控制基本數據檢索。 –

+0

請嘗試更改此sdsUsers.SelectParameters.Add(「@ poNum」,poNum.Text.Trim());'這個'sdsUsers.SelectParameters.AddWithValue(「@ poNum」,poNum.Text.Trim()); ' –

+0

我還在SQL Select語句和SelectParameters.Add()中都有at @符號。它只需要在後面。 – 404

回答

2

我會嘗試從paramater名字去掉@(在離開它你SQL雖然):

sdsUsers.SelectParameters.Add("poNum", poNum.Text.Trim()); 

或(假設poNum是int):

sdsUsers.SelectParameters.Add(new Parameter("poNum", System.TypeCode.Int32, poNum)); 

祝你好運。