// protected override IEnumerable <Movie> GetAllCore() { // Using a DataSet ************************************************************************************************************************************ var ds = new DataSet(); // data visulizer here after break point is set on the return new Movie[0]****************************************************** using (var conn = CreateConnection()) { var da = new SqlDataAdapter(); var cmd = new SqlCommand("GetAllMovies", conn); cmd.CommandType = CommandType.StoredProcedure; da.SelectCommand = cmd; // data adatper will automatically OPEN the connection and CLOSEd the connection for you da.Fill(ds); // the fill method generates the DataTable[] for Data visulizer }; // Read data // if(!ds.Tables.OfType<DataTable>().Any()) // ofType implents IEnumarable<T> // return Enumerable.Empty<Movie>(); var table = ds.Tables.OfType <DataTable>().FirstOrDefault(); //fetches the first table or null 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"]), // convert to a int Name = row.Field <string>("Title"), // does the string conversion behind the sences Description = Convert.ToString(row[2]), // another way to convert to a string ReleaseYear = 1900, RunLength = row.Field <int>(3), IsOwned = Convert.ToBoolean(row[4]), }; movies.Add(movie); } ; return(movies); //throw new NotImplementedException(); //return new Movie[0]; }
protected override IEnumerable <Movie> GetAllCore() { 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); }; //Must have at least one table 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>()) { 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); }