Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2012, 17:04   #1
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию Приложение выдает ошибку

Доброго времени суток!
Может кто-нибудь подскажет. БД - Access, приложение - C#.
При компиляции выдает ошибку "Ссылка на объект не указывает на экземпляр класса".
Код:
 private void Connect_Click(object sender, EventArgs e)
        {
            string a1 = textBox1.Text;                     
            string a2 = a1 + ";" + textBox2.Text;    
            int d = dataGridView1.ColumnCount;      
            int d1 = dataGridView1.RowCount;        
            for (int i = 0; i < d1; i++)                  
            {
                for (int j = 0; j < d; j++)       
                {

                    if (a2 == ";")                
                    {
                        MessageBox.Show("Введите логин и пароль"); 
                        d = 0;                              
                        d1 = 0;                               
                        break;                                
                    }
                    
                    if (a2 == dataGridView1.Rows[i].Cells[j].Value.ToString())  // Вот здесь и возникает ошибка:(:(:(:(   
                    {
                        int r1 = i;                        
                        int r2 = j;                      
                        string rll = dataGridView1.Rows[r1].Cells[r21].Value.ToString() + dataGridView1.Rows[r1].Cells[r2 + 2].Value.ToString() + dataGridView1.Rows[r1].Cells[r2 + 3].Value.ToString() + dataGridView1.Rows[r1].Cells[r2 + 4].Value.ToString();   //  В эту переменную будем записывать плюсы и минусы в виде одной строчки

                        if (rll == "++--")                 //Так символы идут у администратора
                        {
                            Hide();                         
                            Form2 f2 = new Form2();        
                            f2.ShowDialog();                 
                            d = 0;                          
                            d1 = 0;
                            this.Close();                   
                            break;                           
                        }
                       
                        if (rll == "--++")                
                        {
                            Hide();                        
                            Form3 f3 = new Form3();       
                            f3.ShowDialog();                  
                            d = 0;                           
                            d1 = 0;
                            this.Close();                   
                            break;
                        }

                        if (rll == "--+-")                 
                        {
                            Hide();                       
                            Form4 f4 = new Form4();        
                            f4.ShowDialog();                 
                            d = 0;                           
                            d1 = 0;
                            this.Close();                    
                            break;

                        }
                    }
                    int dll = d1 - 1;                         
                    int dd = d - 1;                           
                    if (j == dd && i == dll)                   
                    {
                        MessageBox.Show("Логин или пароль отсутствует в базе данных");
                    }
                }
            }
        }
    }
}
katerina_lili вне форума Ответить с цитированием
Старый 17.10.2012, 17:13   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Код:
dataGridView1.Rows[i].Cells[j].Value.ToString()
Варианты ответов:
1) У dataGridView1 отсутствует строка с индексом i
2) У dataGridView1 отсутствует столбец с индексом j
3) У dataGridView1 в ячейке [i,j] отсутствует значение (т.е. находится null)
4) Все это вместе взятое
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 17.10.2012, 17:33   #3
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию Приложение выдает ошибку

Спасибо за варианты.
Я только начинаю программировать.
Может Вы мне заодно подскажите, как это можно поправить?
katerina_lili вне форума Ответить с цитированием
Старый 17.10.2012, 17:35   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Код:
if (a2 == dataGridView1.Rows[i].Cells[j].Value.ToString())
заменить на
Код:
if (dataGridView1.Rows[i]!=null && 
    dataGridView1.Rows[i].Cells[j]!=null && 
    dataGridView1.Rows[i].Cells[j].Value!=null && 
    a2 == dataGridView1.Rows[i].Cells[j].Value.ToString())
Благодарить в репутацию. Проклинать — туда же

Последний раз редактировалось Luuzuk; 18.10.2012 в 00:18.
Luuzuk вне форума Ответить с цитированием
Старый 17.10.2012, 18:07   #5
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию

Очень спасибо)
katerina_lili вне форума Ответить с цитированием
Старый 18.10.2012, 16:25   #6
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию

Хотя ничего не поправилось
katerina_lili вне форума Ответить с цитированием
Старый 18.10.2012, 16:31   #7
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

А вы уверены, что ошибка на той же строке появилась? если да, то возможно следует дополнить условие if:
Код:
if ( i < d1 && j < d &&
    dataGridView1.Rows[i]!=null && 
    dataGridView1.Rows[i].Cells[j]!=null && 
    dataGridView1.Rows[i].Cells[j].Value!=null && 
    a2 == dataGridView1.Rows[i].Cells[j].Value.ToString())
просто механизм работы DataGridView точно не помню
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 18.10.2012, 16:41   #8
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию

Запустила в очередной раз через F11, после этой строчки
Код:
 if (a2 == dataGridView1.Rows[i].Cells[j].Value.ToString())  // Вот здесь и возникает ошибка:(:(:(:(
не двигается по символам + и -, а сразу вниз к этому коду
Код:
  int dll = d1 - 1;                         
                    int dd = d - 1;                           
                    if (j == dd && i == dll)                   
                    {
                        MessageBox.Show("Логин или пароль отсутствует в базе данных");
                    }

katerina_lili вне форума Ответить с цитированием
Старый 21.10.2012, 14:41   #9
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

так проблема только в том что вы вылезли за пределы строк и ячеек.
Попробуйте вот так, если не получится то скиньте проект.
Код:
if (i < dataGridView1.RowCount && j < dataGridView1.Columns.Count)
{
// дальнейшая обработка
}
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 22.10.2012, 10:46   #10
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию

Спасибо, но все равно ничего не изменилось(((

Проект совсем маленький, но такая загвоздка*(
Вложения
Тип файла: rar Yarmoshuk_ychet_prodazh_gazet.rar (341.4 Кб, 7 просмотров)
katerina_lili вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выдает ошибку Жека90 Общие вопросы C/C++ 3 26.06.2012 22:13
Приложение выдает ошибку missing drivernane property LENA28 БД в Delphi 1 01.04.2011 13:12
выдает ошибку! maksim_serg Microsoft Office Word 3 20.04.2010 04:19
на компьютере нет Delphi, приложение не запускается, выдает ошибку - не является приложением Win32 Vadim_Haritonov Общие вопросы Delphi 3 30.10.2008 12:23