参数传送问题,请各位高手来赐教哦,谢谢了

来源:百度知道 编辑:UC知道 时间:2024/04/28 02:49:30
各位高手,问个问题哈,

我用 string s = Request.QueryString["Aname"];

接受了另外一个页面传来的 "Aname",现在我用Aname 作为SQL的参数:
string select = "select Aneirong from Active Where Aname=@Aname"

来查询Aneirong,以便显示在DATAGRID中,用
SqlCommand c = new SqlCommand(select,con);
SqlParameter[] Parameters ={ new SqlParameter("@Aname", SqlDbType.Text) };
Parameters[0].Value = s;
c.Parameters.Add(Parameters[0]);

将参数传到SQL 语句中, 可是就是在我调试的时候出错了, 他说:

'(@Aname text)select Aneirong from Active Where Aname=@Aname' 需要参数 @Aname,但未提供该参数。
这是为什么呢?

有两种可能:
1.参数没传过来;
2.参数赋值有问题;

解决方法:
1.在select 语句之前输入response.write(s)
看看得出的结果是什么,如果是空,就证明参数没传过来。要先看看参数在上一页是怎么赋值传递的;
2.把程序改成:
string select = "select Aneirong from Active Where Aname=@s"试试看,不是已经赋值给s 了吗?如果不行再试试
string select = "select Aneirong from Active Where Aname='@s'"
因为有时候传递的值不是单纯的数字,所以需要用单引号表示字符串;