Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/215: Рейтинг темы: голосов - 215, средняя оценка - 4.61
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913

Ошибка Object reference not set to an instance of an object

26.07.2012, 12:29. Показов 39873. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На форме есть DataGridView. Есть код, который выдает ошибку "Object reference not set to an instance of an object." Помогите, пожалуйста, разобраться Спасибо
C#
1
2
3
4
5
6
7
8
9
10
11
 private void dgvUser_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
              string usName="";
            string Phone="";
            int r = e.RowIndex;
            usName = dgvUser.Rows[r].Cells["ColUserName"].Value.ToString();//Object reference not set to an instance of an object
//Ошибка возникает при попытке ввода данных в DataGridView
            Phone = dgvUser.Rows[r].Cells["colTelephone"].Value.ToString();
 
            mess.AddUser(usName,Phone);
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.07.2012, 12:29
Ответы с готовыми решениями:

Ошибка System.NullReferenceException : Object reference not set to an instance of an object
Совсем недавно начал учить C# . Наткнулся на ресурс codewars,где нужно по условию написать код и чтобы он прошел тесты. Код проходит 4 из 5...

При streamreader.ReadLine() выскакивает ошибка object reference not set to an instance of object
Здраствуйте, у меня вдруг появилась такая проблема, что при streamreader.ReadLine() выскакивает ошибка object reference not set to an...

Непонятная ошибка: Object reference not set to an instance of an object
Код программы: using System; using System.Collections.Generic; using System.Drawing; using System.Runtime.InteropServices; ...

13
432 / 433 / 93
Регистрация: 16.07.2012
Сообщений: 886
26.07.2012, 12:42
Скопируйте полный текст исключения через "Copy exception detail to the clipboard"
0
Level 2
 Аватар для FakiR
401 / 275 / 48
Регистрация: 22.11.2010
Сообщений: 785
Записей в блоге: 1
26.07.2012, 12:46
Наверно строки такой не существует.
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
26.07.2012, 12:48  [ТС]
System.NullReferenceException was unhandled
Message=Object reference not set to an instance of an object.
Source=R-Core
StackTrace:
at R_Core.Form1.dgvUser_RowsAdded(Object sender, DataGridViewRowsAddedEventArgs e) in D:\RemmonDev\Src\R-Core\R-Core\Form1.cs:line 402
at System.Windows.Forms.DataGridView.OnRows Added(DataGridViewRowsAddedEventArgs e)
at System.Windows.Forms.DataGridView.OnRows AddedInternal(Int32 rowIndex, Int32 rowCount)
at System.Windows.Forms.DataGridViewRowColl ection.OnCollectionChanged_PostNotificat ion(CollectionChangeAction cca, Int32 rowIndex, Int32 rowCount, DataGridViewRow dataGridViewRow, Boolean changeIsDeletion, Boolean changeIsInsertion, Boolean recreateNewRow, Point newCurrentCell)
at System.Windows.Forms.DataGridViewRowColl ection.OnCollectionChanged(CollectionCha ngeEventArgs e, Int32 rowIndex, Int32 rowCount)
at System.Windows.Forms.DataGridViewRowColl ection.AddInternal(Boolean newRow, Object[] values)
at System.Windows.Forms.DataGridView.AddNew Row(Boolean createdByEditing)
at System.Windows.Forms.DataGridView.OnCurr entCellDirtyStateChanged(EventArgs e)
at System.Windows.Forms.DataGridView.set_Is CurrentCellDirtyInternal(Boolean value)
at System.Windows.Forms.DataGridView.Notify CurrentCellDirty(Boolean dirty)
at System.Windows.Forms.DataGridViewTextBox EditingControl.OnTextChanged(EventArgs e)
at System.Windows.Forms.TextBoxBase.WmRefle ctCommand(Message& m)
at System.Windows.Forms.TextBoxBase.WndProc (Message& m)
at System.Windows.Forms.TextBox.WndProc(Mes sage& m)
at System.Windows.Forms.Control.ControlNati veWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNati veWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Debugg ableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods .SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.Control.SendMessage (Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.Control.ReflectMess ageInternal(IntPtr hWnd, Message& m)
at System.Windows.Forms.Control.WmCommand(M essage& m)
at System.Windows.Forms.Control.WndProc(Mes sage& m)
at System.Windows.Forms.ScrollableControl.W ndProc(Message& m)
at System.Windows.Forms.Control.ControlNati veWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNati veWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Debugg ableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods .CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.NativeWindow.DefWnd Proc(Message& m)
at System.Windows.Forms.Control.DefWndProc( Message& m)
at System.Windows.Forms.Control.WndProc(Mes sage& m)
at System.Windows.Forms.TextBoxBase.WndProc (Message& m)
at System.Windows.Forms.TextBox.WndProc(Mes sage& m)
at System.Windows.Forms.Control.ControlNati veWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNati veWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Debugg ableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods .SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.Control.SendMessage (Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.DataGridView.Proces sKeyEventArgs(Message& m)
at System.Windows.Forms.Control.ProcessKeyM essage(Message& m)
at System.Windows.Forms.Control.WndProc(Mes sage& m)
at System.Windows.Forms.DataGridView.WndPro c(Message& m)
at System.Windows.Forms.Control.ControlNati veWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNati veWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Debugg ableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods .DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.Compone ntManager.System.Windows.Forms.UnsafeNat iveMethods.IMsoComponentManager.FPushMes sageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadC ontext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadC ontext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(For m mainForm)
at R_Core.Program.Main() in D:\RemmonDev\Src\R-Core\R-Core\Program.cs:line 18
at System.AppDomain._nExecuteAssembly(Runti meAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.Ho stProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStar t_Context(Object state)
at System.Threading.ExecutionContext.Run(Ex ecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(Ex ecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStar t()
InnerException:

Добавлено через 2 минуты
Привет, canopen! Да, видимо проблема в индексе строки Читаю сейчас мсдн, но не понимаю, как с этим бороться
http://msdn.microsoft.com/ru-r... added.aspx
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
26.07.2012, 12:50  [ТС]
FakiR, у меня обычная DataGridView с разрешенным редактированием. При запуске программы вижу 1 строку в DataGridView, пытаюсь в нее что-то добавит. После1-же символа вылетает ошибка
0
432 / 433 / 93
Регистрация: 16.07.2012
Сообщений: 886
26.07.2012, 12:54
Странно, уж e.RowIndex-то должен правильный индекс содержать.

Добавлено через 2 минуты
Чтобы точно убедиться в том что это именно из-за несуществующей строки, перепишите так:
C#
1
2
3
4
int r = e.RowIndex;
var row = dgvUser.Rows[r];
var cell = row.Cells["ColUserName"];
usName = cell.Value.ToString();
И посмотрите в какой строке ошибка вылетает.
0
 Аватар для винс
46 / 46 / 11
Регистрация: 16.03.2012
Сообщений: 199
26.07.2012, 13:01
iva_a, дело в том что событие RowsAdded возникает сразу же при вводе и получается что у вас на момент его вызова пустые ячейки. вот оно и не может перегнать null в строку.
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
26.07.2012, 13:03  [ТС]
C#
1
винс
, спасибо, это я уже поняла, но как с этим бороться?

Добавлено через 46 секунд
Упс, ссори ,винс
0
 Аватар для винс
46 / 46 / 11
Регистрация: 16.03.2012
Сообщений: 199
26.07.2012, 13:12
iva_a, ну как вариант поменять событие. например на RowLeave. в нем тоже есть аргумент e который содержит номер строки которую покидаем
1
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
26.07.2012, 13:37  [ТС]
винс,сейчас попробую

Добавлено через 3 минуты
не, так получается , что я каждыи раз буду дергать классы, когда просто буду перемещаться по таблице, но все-равно - спасибо,винс
0
 Аватар для винс
46 / 46 / 11
Регистрация: 16.03.2012
Сообщений: 199
26.07.2012, 13:43
а вот так?
C#
1
2
3
4
5
6
7
8
9
        private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridView1.Rows[e.RowIndex].Cells["fio"].Value != null && dataGridView1.Rows[e.RowIndex].Cells["address"].Value != null)
            {
                string usName = dataGridView1.Rows[e.RowIndex].Cells["fio"].Value.ToString();
                string usPhone = dataGridView1.Rows[e.RowIndex].Cells["address"].Value.ToString();
                MessageBox.Show(usName + "\n" + usPhone);
            }
        }
1
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
26.07.2012, 14:47  [ТС]
Увы , так мне не подходит, но - спасибо
0
 Аватар для винс
46 / 46 / 11
Регистрация: 16.03.2012
Сообщений: 199
26.07.2012, 14:57
Тогда немного не понятно. Вам же нужно при записи новой строки, поля передать на метод AddUser, так? Если да то этот вариант работает, разве что можно добавить проверку. Ну да ладно
1
432 / 433 / 93
Регистрация: 16.07.2012
Сообщений: 886
26.07.2012, 15:04
А зачем вообще что-то вручную добавлять? Я думал DataGridView для того и был придуман чтобы чтение/редактирование данных автоматически осуществлялось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.07.2012, 15:04
Помогаю со студенческими работами здесь

HtmlAgilityPack выбрасывает исключение Object reference not set to an instance of an object
Помогите пожалуйста разобраться. Есть такой html код Хочу получить строку "Начало". Пишу такой код string adress =...

Вывести переменную типа string в консоль: Object reference not set to an instance of an object
Вот такой сабж. Пытаюсь вывести переменную типа стринг в консоль Сначала, как обычно for (int ii = 0; ii <...

Программа не выполняет условие (fileInput != null) и выдает Object reference not set to instance of an object
Доброго времени суток, форумчане! Помогите бедному студенту решить вот такую проблему: Программа выдает ошибку на строке создании...

Абстрактный класс. Object reference not set to an instance of an object.
Не работает поиск по заданной дате... Ругается вот на эту строчку: foreach (klient kl in res) в main() Пишет вот это: Object...

Проблема со свойствами: Object reference not set to an instance of an object
Здравствуйте, пишу вот такой код: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru