我正在尝试从代码隐藏中显示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 :(得分:2)
我会尝试从参数名中删除@(尽管将其保留在SQL中):
sdsUsers.SelectParameters.Add("poNum", poNum.Text.Trim());
或(假设poNum是一个int):
sdsUsers.SelectParameters.Add(new Parameter("poNum", System.TypeCode.Int32, poNum));
祝你好运。
答案 1 :(得分:0)
sdsUsers.SelectParameters.Clear();
应该之后
sdsUsers.SelectParameters.Add("@poNum", poNum.Text.Trim());