public List<Task> GetTasksForList(int ListID) { createCommand(); List<Task> tasks = new List<Task>(); string sql = "SELECT * FROM [Task] INNER JOIN [List] ON [Task].[listID] = [List].[id] WHERE [List].[id] = @listID"; _cmd.CommandText = sql; _cmd.Parameters.Add("@listID", System.Data.SqlDbType.Int).Value = ListID; _conn.Open(); SqlDataReader dr = _cmd.ExecuteReader(); if (dr.HasRows) { while(dr.Read()) { int ID = Convert.ToInt32(dr["id"]); int listID = Convert.ToInt32(dr["listID"]); string name = dr["name"].ToString(); string description = dr["description"].ToString(); DateTime due = Convert.ToDateTime(dr["due"]); DateTime completed = DateTime.MinValue; //Yes this sucks, but it wants an ordinal :( if (!dr.IsDBNull(5)) { completed = Convert.ToDateTime(dr["completed"]); } Task task = new Task(listID, name, description, due, completed); task.ID = ID; tasks.Add(task); } } dr.Close(); _conn.Close(); return tasks; }
//INCEPTION FUN! public List<List> GetLists() { createCommand(); List<List> lists = new List<List>(); string sql = "SELECT * FROM [List]"; _cmd.CommandText = sql; _conn.Open(); SqlDataReader dr = _cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { int id = Convert.ToInt32(dr["id"]); string name = dr["name"].ToString(); lists.Add(new List(id, name)); } } dr.Close(); _conn.Close(); return lists; }