Member 13688134 Ответов: 1

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


Я не знаю, что в этом плохого.

Когда я пытаюсь запустить коды, это работает гладко. Но когда я пытаюсь во второй раз, он говорит мне: "Ссылка на объект не установлена на переменную экземпляра объекта" в строке 105, которая является "imgID.Изображение.Сохранить(поток, система.Рисование.Изображений.ImageFormat.Jpeg);"

Вот мой код.

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

private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtLRN.Text == "" && txtFirst.Text == "" && txtMid.Text == "" &&
                    txtLast.Text == "" && cbGL.Text == "" && txtSec.Text == ""
                    && txtNo.Text == "" && txtAdd.Text == "" && imgID.Image == null)
                {
                    enabled();
                }
                else
                {
                    con.Open();

                    cmd = new SqlCommand("insert into tblBorrower (LRN, FirstName, MiddleName, LastName, GradeLevel, Section, ContactNo, Address, IDPhoto) values (@lrn, @fn, @mn, @ln, @gl, @sec, @cn, @add, @id)", con);

                    MemoryStream stream = new MemoryStream();
                    imgID.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] pic = stream.ToArray();

                    cmd.Parameters.AddWithValue("@lrn", txtLRN.Text);
                    cmd.Parameters.AddWithValue("@fn", txtFirst.Text);
                    cmd.Parameters.AddWithValue("@mn", txtMid.Text);
                    cmd.Parameters.AddWithValue("@ln", txtLast.Text);
                    cmd.Parameters.AddWithValue("@gl", cbGL.Text);
                    cmd.Parameters.AddWithValue("@sec", txtSec.Text);
                    cmd.Parameters.AddWithValue("@cn", txtNo.Text);
                    cmd.Parameters.AddWithValue("@add", txtAdd.Text);
                    cmd.Parameters.AddWithValue("@id", pic);

                    cmd.ExecuteNonQuery();

                    con.Close();

                    MessageBox.Show("Record Inserted Succesfully!", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    load();
                    clearTxts();
                    disabled();
                }
            }

            catch (Exception ex)
            {
                MessageBox.Show("Error " + ex);
            }
        }

[no name]

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

PIEBALDconsult

Какая из них-строка 105?

1 Ответов

Рейтинг:
1

Sarita Mall

Привет,

ошибка, которую вы получаете из-за Управления PictureImage (то есть imgID ), не имеет никакого изображения.

вам нужно выбрать/назначить изображение для imgID contrl ,после чего вы не получите "ошибку ссылки на объект".

пожалуйста, проверьте еще раз.

С уважением,
Сарита Сингх


Sarita Mall

прежде чем давать оценку, пожалуйста, убедитесь.