[英]ADO.NET datareader loop by row then column
我需要帮助来制定逻辑。 以下面的示例数据为例:
例如:
Emp表
ID | Fname | Lname | Salary | DeptID
---------------------------------------
1 | John | Smith | 50000 | 1
2 | David | Robinson | 80000 | 2
3 | Frank | Adams | 45000 | 10
我的代码:
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
SqlCommand cmd = new SqlCommand("Select * from emp", conn);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
string EmpID = rdr[0].ToString();
string Fname = rdr[1].ToString();
string Lname = rdr[2].ToString();
double sal = Convert.ToDouble(rdr[3]);
int deptID = Convert.ToInt(rdr[4]);
}
}
发生的是,在while(rdr.Read())内,阅读器将转到第一行,并读取第一列(ID),第二列(Fname),第三列(Lname)等,完成后在第一行中,它将移动到第二行第一列,第二列,依此类推。
我如何更改代码,以便读者以下列方式循环:它将转到第一列,然后遍历所有行,然后再转到下一列? (在完成第一列中的所有行之前,读者不得开始阅读第二列。
注意:
我不仅限于仅使用ADO.NET,而且不熟悉Entity Framework,LINQ等,因此,如果您还有其他查询数据库的方法,请告诉我
数据读取器是仅转发的,因此您不能这样做。
2.每个表中约有500列和1000行,性能是一个值得关注的问题
如果只有1000行和500列,则性能不太可能成为问题。
将所有数据读取到合适的对象(DataTable或Employee对象列表)中,然后执行操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.