コード例 #1
0
        protected override IEnumerable <Movie> GetAllCore()
        {
            //Using a data set
            var ds = new DataSet();

            //Create connection
            using (var conn = CreateConnection())
            {
                var da  = new SqlDataAdapter();
                var cmd = new SqlCommand("GetAllMovies", conn);
                cmd.CommandType = CommandType.StoredProcedure;

                //Use data adapter to fill dataset
                da.SelectCommand = cmd;
                da.Fill(ds);
            };

            //Must have at least one table
            //if (!ds.Tables.OfType<DataTable>().Any())
            //    return Enumerable.Empty<Movie>();
            var table = ds.Tables.OfType <DataTable>().FirstOrDefault();

            if (table == null)
            {
                return(Enumerable.Empty <Movie>());
            }

            //Enumerate the rows
            var movies = new List <Movie>();

            foreach (var row in table.Rows.OfType <DataRow>())
            {
                //Use ordinal or column names
                var movie = new SqlMovie()
                {
                    Id          = Convert.ToInt32(row["Id"]),
                    Name        = row.Field <string>("Title"),
                    Description = Convert.ToString(row[2]),
                    ReleaseYear = 1900,
                    RunLength   = row.Field <int>(3),
                    IsOwned     = Convert.ToBoolean(row[4]),
                };
                movies.Add(movie);
            }
            ;

            return(movies);
        }
コード例 #2
0
        protected override IEnumerable <Movie> GetAllCore()
        {
            //uses a data set
            var ds = new DataSet();

            using (var conn = CreateConnection())
            {
                var da  = new SqlDataAdapter();
                var cmd = new SqlCommand("GetAllMovies", conn);
                cmd.CommandType = CommandType.StoredProcedure;

                da.SelectCommand = cmd;
                da.Fill(ds);
            };

            //Read the Data
            //if (ds.Tables.OfType<DataTable>().Any())
            //   return Enumerable.Empty<Movie>();

            var table = ds.Tables.OfType <DataTable>().FirstOrDefault();

            if (table == null)
            {
                return(Enumerable.Empty <Movie>());
            }

            var movies = new List <Movie>();

            foreach (var row in table.Rows.OfType <DataRow>())
            {
                var movie = new SqlMovie()
                {
                    Id          = Convert.ToInt32(row["Id"]),
                    Name        = row.Field <string>("Title"),
                    Description = Convert.ToString(row[2]),
                    ReleaseYear = 1900,
                    RunLength   = row.Field <int>(3),
                    IsOwned     = Convert.ToBoolean(row[4]),
                };
                movies.Add(movie);
            }
            ;


            //throw new NotImplementedException();
            return(movies);
        }