为什么用ObjectDataSource 接受IList<>数据只显示一行数据啊? 在三层里写了个方法public static IList<User> GetAllUsers(),然后在前台的ObjectDataSource 里去绑定数据,显示的只有一行数据,这是为什么啊?怎么才能显示全部的消息呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1:可能数据库里只有一条数据2:DAL读取时你是不是用的是if(reader.Read())没有while哦 数据库有多行数据啊,只不过方法里有多个查询,有主外键关系,reader.close()后就没有值了! //public static IList<User> GetAllUser() //{ // IList<User> users = new List<User>(); // string sql = "select * from Users"; // int userstateId; // int userroleId; // User user = new User(); // using (SqlDataReader reader = DBHelper.GetReader(sql)) // { // while (reader.Read()) // { // user.Id = Convert.ToInt32(reader["Id"]); // user.Name = Convert.ToString(reader["Name"]); // user.Address = Convert.ToString(reader["Address"]); // user.Phone = Convert.ToString(reader["Phone"]); // user.Mail = Convert.ToString(reader["Mail"]); // userstateId = Convert.ToInt32(reader["UserStateId"]); // user.IsOnLine = Convert.ToInt32(reader["IsOnLine"]); // user.LoginId = Convert.ToString(reader["LoginId"]); // user.LoginPwd = Convert.ToString(reader["LoginPwd"]); // userroleId = Convert.ToInt32(reader["UserRoleId"]); // user.Gender = Convert.ToInt32(reader["Gender"]); // user.UserState = UserStateService.GetUserStateById(userstateId); // user.UserRole = UserRoleService.GetUserRoleById(userroleId); // users.Add(user); // reader.Close(); // } // } // return users; //} 你的reader明显是放在while外面嘛,你那样读一行就关闭了 错了。reader.Close(); 放在循环外面了。改成 // while (reader.Read()) // { // user.Id = Convert.ToInt32(reader["Id"]); ........................ // user.UserRole = UserRoleService.GetUserRoleById(userroleId); // users.Add(user); // } // reader.Close(); 错了。 reader.Close(); 放在循环里面了。 改成 // while (reader.Read()) // { // user.Id = Convert.ToInt32(reader["Id"]); ........................ // user.UserRole = UserRoleService.GetUserRoleById(userroleId); // users.Add(user); // } // reader.Close(); 网站上传到空间。老是进程池停止 Calendar 回发以后,再选择日期,就无法得到具体几号,只能得到年和月,怎么办啊? 添加项目(高分) asp.net 2005 从System.Web.UI.Control继承的自定义控件,因该怎么移动到控件选项卡上啊? 完成了编码,但设计文档并没实时更新,现在上头说要设计文档,有没有快捷的方法??? 很严重的问题 很简单的问题!送分拉!控件位置扑抓 为什么用IP访问web服务器会弹出登录网域的对话框,而用机器名访问就不弹出呢? 点击后没有反应。新手!! 有几个问题,请各位大哥拔刀相助! asp:Timer在IE浏览器中导致内存泄漏 Accordion控件
2:DAL读取时你是不是用的是if(reader.Read())没有while哦
//{
// IList<User> users = new List<User>();
// string sql = "select * from Users";
// int userstateId;
// int userroleId;
// User user = new User();
// using (SqlDataReader reader = DBHelper.GetReader(sql))
// {
// while (reader.Read())
// {
// user.Id = Convert.ToInt32(reader["Id"]);
// user.Name = Convert.ToString(reader["Name"]);
// user.Address = Convert.ToString(reader["Address"]);
// user.Phone = Convert.ToString(reader["Phone"]);
// user.Mail = Convert.ToString(reader["Mail"]);
// userstateId = Convert.ToInt32(reader["UserStateId"]);
// user.IsOnLine = Convert.ToInt32(reader["IsOnLine"]);
// user.LoginId = Convert.ToString(reader["LoginId"]);
// user.LoginPwd = Convert.ToString(reader["LoginPwd"]);
// userroleId = Convert.ToInt32(reader["UserRoleId"]);
// user.Gender = Convert.ToInt32(reader["Gender"]);
// user.UserState = UserStateService.GetUserStateById(userstateId);
// user.UserRole = UserRoleService.GetUserRoleById(userroleId);
// users.Add(user);
// reader.Close();
// }
// }
// return users;
//}
// while (reader.Read())
// {
// user.Id = Convert.ToInt32(reader["Id"]);
........................
// user.UserRole = UserRoleService.GetUserRoleById(userroleId);
// users.Add(user); // }
// reader.Close();
// while (reader.Read())
// {
// user.Id = Convert.ToInt32(reader["Id"]);
........................
// user.UserRole = UserRoleService.GetUserRoleById(userroleId);
// users.Add(user); // }
// reader.Close();