我需要帮助来开发逻辑。以下为例:
例如:
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等,所以如果您有任何其他方式来查询数据库,请告诉我
答案 0 :(得分:1)
数据加载器仅向前,因此您无法执行此操作。
2.每个表中有大约500列和1000行,性能是一个问题
如果您只有1000行和500列,则性能不太可能成为问题。
将所有数据读入合适的对象(DataTable或Employee对象列表),然后执行您的操作。