DataReader能否对结果集遍历2次
string Sql = "select Department_Id ,Department_Name,Father_Id,HelpCode,Id as children from s"; Sql_Class SqlClass = new Sql_Class(); SqlDataReader dr_sql = SqlClass.Sql_Select(Sql); // 把数据放入数组中【dr_sql】 StringBuilder jsonString = new StringBuilder(); // 定义取值存储变量【jsonString】 while (dr_sql.Read()) // ------------- 【第一遍记录循环】 { for (int i = 0; i < dr_sql.FieldCount; i++) // ---------- 字段循环 { Type type = dr_sql.GetFieldType(i); string strKey = dr_sql.GetName(i); // 字段名 string strValue = dr_sql[i].ToString(); // 字段内容 jsonString.Append("\"" + strKey + "\":"); // ------ // 赋值 -- 字段名 } // End_For } // end while while (dr_sql.Read()) // ------------- 【第二遍记录循环】 { for (int i = 0; i < dr_sql.FieldCount; i++) // ---------- 字段循环 { Type type = dr_sql.GetFieldType(i); string strKey = dr_sql.GetName(i); // 字段名 string strValue = dr_sql[i].ToString(); // 字段内容 jsonString.Append("\"" + strKey + "\":"); // ------ // 赋值 -- 字段名 } // End_For } // end while dr_sql.Close(); jsonString.Remove(jsonString.Length - 1, 1); jsonString.Append("]"); // 字段结束
SqlDataReader dr_sql = SqlClass.Sql_Select(Sql); // 把数据放入数组中【dr_sql】
dr_sql.Read()不能重复取吗?难道他只能读一遍吗,再返回从头到尾读一遍不行吗?
Read 向前只读的流 ,第一遍读完,状态已经为False,读取后放在临时变量中 如List<Model>
不过很多时候,一次循环已经足够,既然都是遍历,为何不放在一起执行,同一个循环里.