Проблема NullreferenceException для DataSet.clear () - PullRequest
0 голосов
/ 26 февраля 2010

Я использую значения из строки в представлении данных, чтобы построить путь к изображению для передачи в Picturebox.

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    DataGridViewRow currentRow = new DataGridViewRow();
    currentRow = dataGridView1.CurrentRow;
    string valueJob = currentRow.Cells[2].Value.ToString();
    string valueBatch = currentRow.Cells[3].Value.ToString();
    string valueImmagine = currentRow.Cells[4].Value.ToString();
    string result = Octopus2.Properties.Settings.Default.DataPath + "\\" + valueJob + "\\" + valueBatch + "\\" + valueImmagine + ".jpg";   
    pictbox.ImageLocation = result;
}

Проблема в том, что когда я делаю DataSet.clear (), используя другойуправления, код возвращает следующую ошибку: «NullreferenceException не было обработано кодом пользователя».

Заранее спасибо, любая помощь будет оценена.

Ответы [ 3 ]

1 голос
/ 27 февраля 2010

Как я уже говорил, DataSet.clear () вызывается другим обработчиком событий, вызываемым элементом управления, кнопкой сброса. Я решил проблему следующим образом:

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    if (dataGridView1.RowCount >=1)
    {
        DataGridViewRow currentRow = new DataGridViewRow();
        currentRow = dataGridView1.CurrentRow;
        string valueJob = currentRow.Cells[2].Value.ToString();
        string valueBatch = currentRow.Cells[3].Value.ToString();
        string valueImmagine = currentRow.Cells[4].Value.ToString();

        string result = Octopus2.Properties.Settings.Default.DataPath + "\\" + valueJob + "\\" + valueBatch + "\\" + valueImmagine + ".jpg";

        pictboxImpegnativa.ImageLocation = result;
    }
    else
    {
        MessageBox.Show("good work.");
    }
}

Спасибо за ваше время и помощь.

1 голос
/ 26 февраля 2010

Хотя я не могу использовать DataSet.clear () в показанном вами коде, но если DataSet.clear () выдает эту ошибку, DataSet имеет значение null.

0 голосов
/ 21 октября 2010

Вы забыли проверить, может ли currentRow.Cells[x].Value также быть нулевым. Вы должны добавить еще один код, который выглядит следующим образом:

if (currentRow.Cells[n].Value != null) 
{
    // your code here
}

Поверьте мне, есть внутренний объект, который вам нужно отлавливать для нулей, а не только один из DataGridViewRow.

...