Как сделать цикл, который будет сравнивать все значения одним нажатием на кнопку?

Суть.

Нажимаем на кнопку, далее

Если ЗначениеИзТаблицыЭксель == ЗначениюИзТаблицыБазыДанных
То Удалить строку из ТаблицыЭксель (globalDataTableExcel)

Вот код:

            foreach (DataRow i in globalDataTableExcel.Rows)
            {
                foreach (DataRow j in globalDataTableMySQL.Rows)
                {
                    for (int x = 0; x < globalDataTableMySQL.Rows.Count; ++x)
                    {
                        string a = i[0].ToString();
                        string b = j[0].ToString();
                        if ((a != null) & b != null)
                        {
                            if (a != b)
                            {
                                i.Delete();
                            }
                        }
                    }
                }
            }

Строк там много, но как, я извиняюсь "залупить" эту операцию, до тех пор, пока не будут проверены все строки? Напрашивается while...do.

И еще выползает исключение, только сейчас заметил, тоже не знаю что делать. Тип исключения Object reference not set to an instance of an object.


Ответы (1 шт):

Автор решения: CatException

Решение

        private void btnMinusovat_Click(object sender, EventArgs e)
        {
            List<string> data_Excel = new List<string>();
            DataBase db = new DataBase(connection_String);
            int iRows = Convert.ToInt32(db.ParseData($"SELECT COUNT(*) as count FROM phone1"));

            try
            {
                foreach (DataRow i in globalDataTableExcel.Rows)
                {
                    foreach (DataRow j in globalDataTableMySQL.Rows)
                    {
                        for (int x = 0; x < globalDataTableMySQL.Rows.Count; ++x)
                        {
                            string a = i[0].ToString();
                            string b = j[0].ToString();
                            if ((a != null) & b != null)
                            {
                                if (a != b)
                                {
                                    i.Delete();
                                    ++minusSlov;
                                }
                            }
                        }
                    }
                }
                globalDataTableExcel.AcceptChanges(); 
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка: " + ex.Message.ToString(), "Exception " + this.Name);
            }
            finally
            {
                dgvMinusator.DataSource = globalDataTableExcel;
            }
→ Ссылка