初学者提问:SqlDateReader如何读取多行记录
菜鸟提问:SqlDateReader怎么读取多行记录?
我写的C#代码如下:
结果发现exUserList中倒是有多行记录,但这多行记录都是一样的,都和最后一行记录相同。调试了一下发现,执行while循环时,读取第二行的同时,第一行的对应值就会被覆盖。也就是当读取第二行的exUser.ID时,exUserList中已记录的第一行的exUser.ID值会同时改变。知道问题所在了,但不知道应该怎么修改,还望多多指点!先谢过!
ExecuteScalar还不知道怎么用,在这儿应该不能用吧?
------解决方案--------------------
exUser = new Ex_User();把这个粘贴在while里面就好了。
我写的C#代码如下:
List<Ex_User> exUserList = new List<Ex_User>();
Ex_User exUser = new Ex_User();
string strSql="select ID,Name,LOGINNAME,PASSWORD,CGROUP,VALIDSTATUS from UM_User";
string strConn=@"Data Source=.;Initial Catalog=usermanagement;User Id=sa;Password=111";
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sbSql.ToString();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
exUser.ID = Convert.ToInt64(reader["id"]);
exUser.NAME = reader["NAME"].ToString();
exUser.LOGINNAME = reader["LoginName"].ToString();
exUser.CGROUP = (int)reader["cGroup"];
exUser.VALIDSTATUS = (int)reader["ValidStatus"];
exUser.PASSWORD = reader["Password"].ToString();
exUserList.Add(exUser);
}
}
}
}
return View(exUserList);
结果发现exUserList中倒是有多行记录,但这多行记录都是一样的,都和最后一行记录相同。调试了一下发现,执行while循环时,读取第二行的同时,第一行的对应值就会被覆盖。也就是当读取第二行的exUser.ID时,exUserList中已记录的第一行的exUser.ID值会同时改变。知道问题所在了,但不知道应该怎么修改,还望多多指点!先谢过!
ExecuteScalar还不知道怎么用,在这儿应该不能用吧?
C# SqlDateReader
c#
SqlDateReader
读取多行记录
SqlDateScalar
------解决方案--------------------
exUser = new Ex_User();把这个粘贴在while里面就好了。