【发布时间】:2013-01-20 16:06:53
【问题描述】:
我正在尝试从代码隐藏中显示 sql 选择结果,但是发生了这个错误:
必须声明标量变量“@poNum”。
第 75 行:sdsUsers.SelectParameters.Add("@poNum", poNum.Text.Trim());
第 76 行:
第 77 行:DataView dvMember = (DataView)sdsUsers.Select(DataSourceSelectArguments.Empty); //这里是错误
第 78 行:数据表 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();
}
}
我被这个问题困扰了好几天,我找不到解决办法
【问题讨论】:
-
考虑使用 ADO.NET
SqlDataAdapter类而不是 ASP.NETSqlDataSource控件进行基本数据检索。 -
请尝试将
sdsUsers.SelectParameters.Add("@poNum", poNum.Text.Trim());更改为sdsUsers.SelectParameters.AddWithValue("@poNum", poNum.Text.Trim()); -
我在 SQL Select 语句和 SelectParameters.Add() 中也有 at @ 符号。它只需要在后面。
标签: c# sql sql-server ado.net