c # Ошибка строки данных из учебника - PullRequest
0 голосов
/ 24 июня 2011

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

Ссылка на объект не установлена ​​на экземпляр объекта.

вот мой полный код

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        System.Data.SqlClient.SqlConnection con;
        System.Data.SqlClient.SqlDataAdapter da;
        DataSet ds1;


        int MaxRows = 0;
        int inc = 0;

        private void Form1_Load(object sender, EventArgs e)
        {
            con = new System.Data.SqlClient.SqlConnection();
            ds1 = new DataSet();

            con.ConnectionString = "Data Source=localhost;Initial Catalog=Kart_Setup;Integrated Security=True;Pooling=False";

            con.Open();

            da.Fill(ds1, "Setup");   
        }

        private void clr_Click(object sender, EventArgs e)
        {


        }

        private void save_Click(object sender, EventArgs e)
        {
            System.Data.SqlClient.SqlCommandBuilder cb;
            cb = new System.Data.SqlClient.SqlCommandBuilder(da);


          DataRow dRow = ds1.Tables["Setup"].NewRow();

          dRow[1] = FL.Value;
          dRow[2] = FR.Value;
          dRow[3] = RL.Value;
          dRow[4] = RR.Value;

          ds1.Tables["Setup"].Rows.Add(dRow);

          MaxRows = MaxRows + 1;
          inc = MaxRows - 1;

          da.Update(ds1, "Setup");

          MessageBox.Show("Setup Added");

          con.Close();
        }
    }
}

Любая помощь будет оценена заранее спасибо

Ответы [ 2 ]

3 голосов
/ 24 июня 2011

Вам нужно объявить ds для чего-то ... попробуй ....

РЕДАКТИРОВАТЬ: Исправлен код для добавления данных в набор данных.

DataSet ds1 = new DataSet();
DataTable dt = new DataTable("Setup");
ds1.Tables.Add(dt);
DataRow dRow = ds1.Tables["Setup"].NewRow();

Кроме того, не забудьте инициализироватьвсе переменные выглядят подозрительно:

MaxRows = MaxRows + 1;
inc = MaxRows - 1;

Похоже, что они объявлены в самом классе, поместите это вне функции:

public intMaxRows = 0;
public int inc = 0;

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

1 голос
/ 24 июня 2011

Что такое да?Является ли он нулевым?

Вы инициализировали ds1?

Является ли FL нулевым?

Является ли FR нулевым?

Является ли RL нулевым?

RR нулевой?

А как насчет MaxRows?inc?

Вы не предоставили достаточно информации, чтобы получить реальную помощь.

РЕДАКТИРОВАТЬ:

На основании вашего комментария необходимо инициализировать ds1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...