Member 12993442 Ответов: 1

Многомерная матрица C#


Привет,

у меня есть многомерный массив (2),
Я хочу получить последнюю дату для всего моего массива
но он не работал и я не могу решить эту проблему :(

Проблема, я думаю, заключается в "Traitement"
Не вините меня, я новичок в этом массиве

ArrayList list = new ArrayList();
        List<DateTime> lst_date = new List<DateTime>();    
            


        private void LoadDatas()
        {
            using (OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DataBase\Test.accdb"))
            {
                OleDbCommand command = new OleDbCommand("SELECT * FROM [Devoirs]", con);
                con.Open();
                OleDbDataReader reader = command.ExecuteReader();
                string[] tab;
                tab = new string[6];
                while (reader.Read())
                {
                    tab[0] = reader[1].ToString();
                    tab[1] = reader[2].ToString();
                    tab[2] = reader[3].ToString();
                    tab[3] = reader[4].ToString();
                    tab[4] = reader[5].ToString();
                    tab[5] = reader[6].ToString();
                    list.Add(tab);
                }
            }
        }
        private void Traitement()
        {
            for(int i = 0;i < list.Count;i++)
            {
                string[] Donne = (string[]) list[i];
                DateTime ifdate = TraitementDate(Donne[1]);
                if(ifdate.Date >= DateTime.Now)
                {
                    lst_date.Add(ifdate);
                    MessageBox.Show("Je suuis passé par ici");
                }
            }
        }
        private DateTime TraitementDate(string Date)
        {
            
            string[] strTempo = Date.Split(' ');
            Date = strTempo[0];
            strTempo = Date.Split('.');
            int iJour = Convert.ToInt32(strTempo[0]);
            int iMois = Convert.ToInt32(strTempo[1]);
            int iAnne = Convert.ToInt32(strTempo[2]);
            DateTime dateHere = new DateTime(iAnne,iMois,iJour);
            MessageBox.Show(dateHere.ToString());
            return dateHere;
        }
        private void MiseEnPage()
        {
            for(int i = 0;i < lst_date.Count;i++)
            {
                switch(lst_date[i].DayOfWeek)
                {
                    case DayOfWeek.Monday: 
                        break;
                    case DayOfWeek.Tuesday:
                        break;
                    case DayOfWeek.Wednesday:
                        break;
                    case DayOfWeek.Thursday:
                        break;
                    case DayOfWeek.Friday:
                        break;
                }
            }
        }
        private void Form3_Load(object sender, EventArgs e)
        {
            LoadDatas();
            Traitement();
            MiseEnPage();
        }


Что я уже пробовал:

Я действительно Новичок в этом коде хочу чтобы я попробовал разбил свою программу :(

1 Ответов

Рейтинг:
10

Richard MacCutchan

Это выглядит излишне сложным. Почему бы просто не извлечь поля дат из записей базы данных и не провести там сравнение? Почему вы захватываете все эти строки, которые вы никогда не используете? И зачем вручную преобразовывать строку в дату вместо использования встроенных методов синтаксического анализа даты? И почему они не хранятся в базе данных в виде типов DateTime?


Member 12993442

Моя база данных-Acces, и я пытался получить datetime, но не получилось, и вся эта строка предназначена для следующего шага ^^'

это программа для домашнего задания это дата когда я ее получу дата когда мне нужно закончить языковую страницу и т. д.

вот почему у меня есть вся эта строка "бесполезно"

F-ES Sitecore

Доступ по-прежнему имеет тип поля даты, который вы можете использовать. Хранение данных в соответствующих полях вашей базы данных решает так много проблем.

Member 12993442

в моей базе данных есть два чемпиона с датой/временем, но когда я пытаюсь взять его, он говорит, что вы не можете преобразовать объект в datetime

F-ES Sitecore

Вы пробовали читать?GetDateTime(1), где "1" - это номер столбца для чтения?

Member 12993442

Я не пробовал, "1" - это столбец с последней датой ^^'