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
新聞熱點
疑難解答