Darwin Ahmed Ответов: 3

Как мне решить, что ссылка на объект не установлена на экземпляр объекта.


Описание: необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта.

Ошибка Источника:

Необработанное исключение было сгенерировано во время выполнения текущего веб-запроса. Информацию о происхождении и местоположении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

трассировка стека:


[NullReferenceException: ссылка на объект не установлена на экземпляр объекта.]
меняла.Cusinfo.BtnSave_Click(отправитель объекта, EventArgs e) в C:\Users\Zeeyana\source\repos\Money чейнджер\Money Changer\Cusinfo.aspx.cs:138
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.OnClick(EventArgs e) +9782310
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.RaisePostBackEvent(String eventArgument) +204
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.Системы.Веб.Пользовательского интерфейса.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
Системы.Веб.Пользовательского интерфейса.Страницы.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639

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

&ЛТ;добавить имя="connectionString в" свойства connectionString="источник данных=66.255.125.25;начальный каталог=mccisdatabase;Комплексная безопасность=ложь;идентификатор пользователя=myuname;пароль=ПВ" имя_поставщика="системы.Данных.Sqlclient как"&ГТ;

raddevus

Что находится в строке 138 Cusinfo.aspx.cs?
C:\Users\Zeeyana\source\repos\Money чейнджер\Money Changer\Cusinfo.aspx.cs:138

Это то, что среда выполнения считает нулевым.

Darwin Ahmed

Cusinfo.aspx.cs-это мой файл на моей локальной машине, и в моем коде такого нет, но он появляется, когда произошла ошибка.

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

Richard MacCutchan

Скорее всего, потому, что этот адрес недопустим, когда код выполняется на сервере. Вам необходимо изменить местоположение источника данных на действительный адрес сервера.

Darwin Ahmed

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

Richard MacCutchan

Затем, как указано ниже, вам нужно исследовать, какая переменная является нулевой. Мы не можем этого сделать, так как у нас нет доступа к вашей системе.

Ошибка явно находится на C:\Users\Zeeyana\source\repos\Money чейнджер\Money Changer\Cusinfo.aspx.cs:138 вот с этого и надо начинать поиски.

3 Ответов

Рейтинг:
2

Patrice T

Мы не можем сделать из этого ничего сверх очевидного.
Где-то в вашем коде происходит сбой, и операция не возвращает ничего вместо ожидаемого объекта. Когда вы пытаетесь использовать объект, вы получаете ошибку.

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

Отладка кода C# в Visual Studio - YouTube[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Рейтинг:
0

OriginalGriff

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

Позвольте мне просто объяснить, что означает ошибка: вы пытались использовать переменную, свойство или возвращаемое значение метода, но оно содержит null - что означает, что в переменной нет экземпляра класса.
Это немного похоже на карман: у вас есть карман в рубашке, который вы используете, чтобы держать ручку. Если вы сунете руку в карман и обнаружите, что там нет ручки, вы не сможете подписать свое имя на листе бумаги - и вы получите очень смешные взгляды, если попытаетесь! Пустой карман дает вам нулевое значение (здесь нет ручки!), поэтому вы не можете сделать ничего, что обычно делали бы, когда вы извлекли свою ручку. Почему он пуст? Вот в чем вопрос - может быть, вы забыли взять ручку, когда уходили из дома сегодня утром, или, возможно, вы оставили ручку в кармане вчерашней рубашки, когда снимали ее вчера вечером.

Мы не можем сказать, потому что нас там не было, и, что еще важнее, мы даже не можем видеть вашу рубашку, не говоря уже о том, что находится в кармане!

Вернемся к компьютерам, и вы каким - то образом сделали то же самое-и мы не можем увидеть ваш код, а тем более запустить его и узнать, что содержит null, когда это не должно быть.
Но вы можете - и Visual Studio поможет вам здесь. Запустите свою программу в отладчике, и когда она выйдет из строя, VS покажет вам строку, в которой она обнаружила проблему. Затем вы можете начать просматривать различные его части, чтобы увидеть, какое значение равно null, и начать просматривать свой код, чтобы узнать, почему. Поэтому поставьте точку останова в начале метода, содержащего строку ошибки, и снова запустите программу с самого начала. На этот раз VS остановится перед ошибкой и позволит вам изучить, что происходит, пройдя через код, глядя на ваши значения.

Но мы не можем этого сделать - у нас нет вашего кода, мы не знаем, как его использовать, если бы он у нас был, у нас нет ваших данных. Так что попробуйте - и посмотрите, сколько информации вы можете узнать!


Рейтинг:
0

ZurdoDev

Это очень, очень простая проблема для решения, и только вы можете сделать это, так как мы не можем запустить ваш код. Вы пытаетесь получить доступ к чему-то, что является нулевым. Отладьте свой код, и вы сразу же найдете его. Простой.