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;
        }