System.Data.SqlClient.SqlDataReader
System.Data.SqlClient.SqlDataAdapter
从机制上区分:
SqlDataReader 查询数据始终是在数据库中查询,在使用该对象进行查询时connection始终处于占用状态,无法进行其它操作。
SqlDataAdapter对象在进行查询时是一次将所有的查询结果加载至内存,并关闭连接。
从具体操作上进行区分:
#region 执行sql返回一个结果集 public static DataTable ExecuteDataTable(string sqlText, params SqlParameter[] parameters) { using (SqlDataAdapter adapter = new SqlDataAdapter(sqlText, GetConnectionString())) { DataTable dt = new DataTable(); adapter.SelectCommand.Parameters.AddRange(parameters); adapter.Fill(dt); return dt; } } #endregion #region 使用SqlDataReader查询结果集 public static SqlDataReader ExecutreReader(String sqlText, params SqlParameter[] parameter) { using (SqlConnection connection = new SqlConnection(GetConnectionString())) { SqlCommand cmd = connection.CreateCommand(); connection.Open(); cmd.CommandText = sqlText; cmd.Parameters.AddRange(parameter); SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } } #endregion
新闻热点
疑难解答