Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 07.02.2012, 11:23   #1
Kazbek17
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 12
По умолчанию Ссылка на объект не указывает на экземпляр объекта.

Здравствуйте уважаемые знатоки, я недавно стал изучать язык C#, и вопросов конечно куча, скачал себе уроки но там как всегда про консоль рассказывают, а консоль это не Windows Form, ну ладно суть не в этом, хотел бы у вас поинтересоваться столкнулся с такой ситуацией что не могу с одной формы передать в dataGridView, то есть у меня есть Forma1, расположен dataGridView и заполнен столбцами dataset1, на второй форме расположены texbox-ты. Проблема в том что, при запуске программы, открываю Form2 ввожу данные нажимаю сохранить, мне пишет ошибку что "Ссылка на объект не указывает на экземпляр объекта." Может кто подскажет что я не так делаю, куда мне эту ссылку нужно прописать. Два дня уже бьюсь понять не могу в чем проблема, вроде все сделал публичным. Спасибо!!! кто помогает. Вот код программы Form1
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Limitka
{
        public partial class Form1 : Form
       {
        
        public Form1()
        {
            InitializeComponent();
            
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.Visible = true;
            AddNewPredbutton2.Visible = true;
            groupBox1Pred.Visible = true;
           
        }
        
        private void AddNewPredbutton2_Click(object sender,System.EventArgs e)
        {
             Form2 fr2 = new Form2();
            fr2.Show();
            
        }
        
    }
}
Код Form 2, и вот выдает ошибку "DataRow row = PredpriyatiedataTable1.NewRow(); Ссылка на объект не указывает на экземпляр объекта.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Limitka
{
    public partial class Form2 : Form
    {
        public DataGridView dataGridView1;
        public DataSet dataSet1;
        public DataTable PredpriyatiedataTable1;
        public Form2()
        {
           InitializeComponent();
           
        }

        private void button1NewPredSave_Click(object sender, EventArgs e)
        {
            DataRow row = PredpriyatiedataTable1.NewRow();
            row["Наименование"] = textBox1NewPred.Text;
            row["Адрес"] = textBox2NewAdres.Text;
            row["Телефон"] = textBox3NewTel.Text;
            row["Факс"] = textBox4NewFax.Text;
            row["e-mail"] = textBox5NewMail.Text;
            row["www"] = textBox6NewWWW.Text;
            row["Директор"] = textBox7NewDirec.Text;
            row["Контактное лицо"] = textBox8NewLico.Text;
            PredpriyatiedataTable1.Rows.Add(row);                           
        } 
    }
}
Kazbek17 вне форума Ответить с цитированием
Старый 07.02.2012, 11:50   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Значит переменная PredpriyatiedataTable1 == null. Поставь Brakepoint туда и мышкой подведя к ней увидишь значние этой переменной
Guy вне форума Ответить с цитированием
Старый 07.02.2012, 13:28   #3
Kazbek17
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Guy Посмотреть сообщение
Значит переменная PredpriyatiedataTable1 == null. Поставь Brakepoint туда и мышкой подведя к ней увидишь значние этой переменной
Хорошо!!!! тогда в этом случаи что мне делать? может кто нибуть нормально ответить. Как мне отрыть доступ?
Kazbek17 вне форума Ответить с цитированием
Старый 07.02.2012, 14:14   #4
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Видя предоставленную информацию врятли кто то тр*хаться с этим захочет. Спасение утопающего дело рук самого утопющего. В какой момент времени ты хочешь инициализивароть переменную PredpriyatiedataTable1 никто не знает
Guy вне форума Ответить с цитированием
Старый 07.02.2012, 14:17   #5
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Код:
public DataTable PredpriyatiedataTable1;
Вот тут ты объявляешь переменую PredpriyatiedataTable1 с типом DataTable, по сути это просто указатель котрый пока не на что не указывает, а в том месте где у тебя вылезает ошибка ты пробуешь вызвать метод по пустому указателю. Перед тем как такое делать надо создать объект (допустим новый), т.е. сделать PredpriyatiedataTable1 = new DataTable();
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 07.02.2012, 14:23   #6
Kazbek17
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от KobolD Посмотреть сообщение
Код:
public DataTable PredpriyatiedataTable1;
Вот тут ты объявляешь переменую PredpriyatiedataTable1 с типом DataTable, по сути это просто указатель котрый пока не на что не указывает, а в том месте где у тебя вылезает ошибка ты пробуешь вызвать метод по пустому указателю. Перед тем как такое делать надо создать объект (допустим новый), т.е. сделать PredpriyatiedataTable1 = new DataTable();
Вот можете посмотреть я весь проект вам скинул, если конечно вам не трудно. Спасибо заранее!!!
Вложения
Тип файла: rar Limitka.rar (62.3 Кб, 42 просмотров)
Kazbek17 вне форума Ответить с цитированием
Старый 07.02.2012, 18:46   #7
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

мде, чета код какой-то странный, я думал это только я 1 такое умею писать

die google translator die :ярость::ярость::ярость::ярость:
Вложения
Тип файла: zip Limitka.zip (70.6 Кб, 70 просмотров)

Последний раз редактировалось rUs_LAN; 07.02.2012 в 19:00.
rUs_LAN вне форума Ответить с цитированием
Старый 08.02.2012, 15:05   #8
Kazbek17
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от rUs_LAN Посмотреть сообщение
мде, чета код какой-то странный, я думал это только я 1 такое умею писать

die google translator die :ярость::ярость::ярость::ярость:
спасибо вам за пример, но немного не то вы сделали, это получается что при закрытие второго окна все равно заносит данные да же если поле ввода были пустыми. То есть получается что нарушена работа способность программы. А это не пойдет. А на счет кода я только учусь вот и за этого он немного странный думаю что дальше будет еще интереснее. Спасибо вам еще раз за пример.
Kazbek17 вне форума Ответить с цитированием
Старый 08.02.2012, 16:55   #9
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,357
По умолчанию

так разобрались или нет?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 08.02.2012, 17:11   #10
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

ну проверок на наличие данных в исходном варинат не было и вы нигде не говорили что вам нужна эта проверка.

То есть получается что нарушена работа способность программы.

нарушена работа неработающей программы, интересно, надо будет запомнить
rUs_LAN вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ссылка на объект не указывает на экземпляр объекта C++ Юля_ Помощь студентам 2 09.01.2012 16:04
В экземпляре объекта не задана ссылка на объект BlackStoens Помощь студентам 18 08.07.2011 15:12
Ссылка на экземпляр объекта не установлена. vedro-compota Общие вопросы .NET 2 08.01.2011 18:12
В экземпляре объекта не задана ссылка на объект. Selebro Общие вопросы C/C++ 1 01.12.2008 23:48