日期:2014-05-18  浏览次数:21000 次

这种情况,SqlDataReader 和 SqlDataAdapter 各有什么优缺点
C# code

        public DataTable Query(string sqlstring)
        {
            try
            {
                mobjConn = new SqlConnection(mstrConn);
                mobjCmd = mobjConn.CreateCommand();
                mobjCmd.CommandText = sqlstring;
                DataTable dt_return = new DataTable();

                mobjConn.Open();
                SqlDataReader reader = mobjCmd.ExecuteReader();
                dt_return.Load(reader);
                return dt_return;
            }
            catch (SqlException e)
            {
                throw e;
            }
            finally
            {
                mobjConn.Close();
            }
        }




C# code

        public DataTable Query(string sqlstring)
        {
            try
            {
                DataTable dt_return = new DataTable();

                mobjAdapter = new SqlDataAdapter(sqlstring, mstrConn);
                mobjAdapter.Fill(dt_return);

                return dt_return;
            }
            catch (SqlException e)
            {
                throw e;
            }
        }



一个用SqlDataAdapter,另外一个用SqlDataReader 
各有什么优点和缺点
请教各位朋友

------解决方案--------------------
SqlDataReader 向前只读,不能修改数据

------解决方案--------------------
一般的是SqlDataAdapter
他读数据的时候不占用sqlconnection
SqlDataReader一直占用着sqlconnection
------解决方案--------------------
效率上SqlDataReader快点,不过一般看不出来。