SqlConnection con = new SqlConnection("server=C23471744F6D4BC;database=OA_DB;integrated security=true");
string sql = "declare @pagesize int";
sql += " declare @str varchar(1000) ";
sql += "set @str='select top '+convert(varchar(4),@pagesize)+' * from TabMenu' ";
sql += "exec (@str)";
con.Open();
SqlCommand command = new SqlCommand(sql,con);
SqlDataReader reader = command.ExecuteReader(); command.Parameters.AddWithValue("@pagesize", 3);
List<Menu> list = new List<Menu>();
while (reader.Read())
{
Menu menu = new Menu();
menu.Id = Convert.ToInt32(reader["Id"].ToString());
list.Add(menu);
}
con.Close();
直接说问题: 首先申明 数据表连接正确,sql语句正确,代码没有错误。
问题在于 我怎样将@pagesize 这个参数传递进去,注意这的参数是 select top @pagesize * from 传递的参数是查询多少行,不是查询字段的值,希望大家这里看清楚。
我要怎样才能将这个参数传递进去,或者怎样修改这个sql语句可以查询达到相同的效果。
注意规则: (1)不用用什么拼接sql语句的方式,@pagesize 必须以参数占位符的方式传递
(2) 不能使用存储过程
(3) 你可以修改sql语句的格式,但是@pagesize 必须是占位符参数
说了这么多 希望大家明白,就帮我解决一下吧
4 回答
莫回无
TA贡献1865条经验 获得超7个赞
SqlDataReader reader = command.ExecuteReader(); command.Parameters.AddWithValue("@pagesize", 3);
换一下顺序,变为
command.Parameters.AddWithValue("@pagesize", 3);
SqlDataReader reader = command.ExecuteReader();
然后把
declare @pagesize int 这句sql删除
- 4 回答
- 0 关注
- 501 浏览
添加回答
举报
0/150
提交
取消