DataTable dt = DBHelper.GetDataSet(sql);
            List<AccessoryFile> lists = new List<AccessoryFile>();
            AccessoryFile accessoryFile = null;
            foreach (DataRow row in dt.Rows)
            {
                accessoryFile = new AccessoryFile();
                accessoryFile.AccessoryId = (int)row["AccessoryId"];
                accessoryFile.AccessoryName = row["AccessoryName"].ToString();
                accessoryFile.AccessoryPath = row["AccessoryPath"].ToString();
                accessoryFile.AccessorySize = (int)row["AccessorySize"];
                accessoryFile.CreateDate = Convert.ToDateTime(row["CreateDate"].ToString());
                int fileId=(int)row["FileId"];
                int fileTypeId = (int)row["AccessoryType"];
                accessoryFile.FileInfo = FileInfoService.GetFileInfoByFileId(fileId);
                accessoryFile.FileTypeInfo = FileTypeInfoService.GetFileTypeInfoByFileTypeId(fileTypeId);
                lists.Add(accessoryFile);
            }
            return lists;          UserInfo user = null;
            List<UserInfo> users = new List<UserInfo>();
            SqlDataReader reader = SQLConn.GetReader(sql);
            while (reader.Read())
            {
                user = new UserInfo();
                user.Uid = Convert.ToInt32(reader["Uid"].ToString());
                user.Uname = reader["Uname"].ToString();
                user.Upwd = reader["Upwd"].ToString();
                user.Telphone = reader["Telphone"].ToString();
                user.Email = reader["emial"].ToString();
                user.Address = reader["Address"].ToString();
                users.Add(user);
                
            }
            reader.Close();
            return users;都是得到一个集合 有啥区别呢????

解决方案 »

  1.   

    你可以看看 
    DataTable与DataReader的区别
      

  2.   

    DataReader对象是用来读取数据库的最简单方式,它只能读取,不能写入,并且是从头至尾往下读的,无法只读某条数据,但它占用内存小,速度快DataSet是用来做连接sql的一种方法,意思是把数据库的副本存在应用程序里,应用程序开始运行时,把数据库相关数据保存到DataSet.DataTable表示内存中数据的一个表.常和DefaultView使用获取可能包括筛选视图或游标位置的表的自定义视图。DataAdapter对象是用来读取数据库.可读取写入数据,某条数据超着强,但它占用内存比dataReader大,速度慢dataset表示一个数据集,是数据在内存中的缓存。 
    DatSet 连接数据库时是非面向连接的。
    datareader 连接数据库时是面向连接的。
      

  3.   

    楼上  你的意思是用datareader比较好了
      

  4.   

    datatable 可以放任意类型的对象,而你创建的list<UserInfo>只能存储Users类型的对象…
      

  5.   


    嗯。但是用datareader也要注意。调用了它的read()方法后,必须要关闭。才能再调用read()方法。