建立存储过程:
create proc pro_UserChoose
@UserId varchar(50) = '',
@UserName varchar(20) = '',
@DepartId int=0
AS
BEGIN
select * from view_UserInfo
where UserId like case when @UserId='' then UserId else @UserId end
and UserName like case when @UserName = '' then UserName else @UserName end
and DepartId like case when @DepartId = 0 then DepartId else @DepartId end
END
页面调用代码如下:
List<Model.UserInfo> list = new List<Model.UserInfo>();
DataSet ds = new DataSet();
SqlConnection conn =new SqlConnection( ConfigurationManager.AppSettings[0]);
SqlCommand cmd = new SqlCommand("pro_UserChoose", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@UserId",SqlDbType.Char,50);
cmd.Parameters.Add("@UserName", SqlDbType.Char,20);
cmd.Parameters.Add("@DepartId", SqlDbType.Int,4);
cmd.Parameters["@UserId"].Value = userid;
cmd.Parameters["@UserName"].Value = username;
cmd.Parameters["@DepartId"].Value = departid;
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
Model.UserInfo user = new Model.UserInfo();
user.UserId = dr["UserId"].ToString();
user.UserName = dr["UserName"].ToString();
list.Add(user);
}
conn.Close();
dr.Close();
return list;
}
我通过调试,得到那三个参数的值,然后把他拿到数据库中的建的存储过程中运行,明明有记录的,可是结果就是不进while(dr.Read()),取不到值;到底为什么会这样啊?想不通! 各位大侠,谁能帮哈我啊!分儿都给你拉!!!
我已经加设断点,把值给取出来拿到数据库中运行过,的确能够有记录,可是他就不进while,太怪了