Как обработать исключения «Out of Index» в моем DataSet? - PullRequest
0 голосов
/ 12 февраля 2019

Пожалуйста, помогите мне.Прошло уже 3 дня, как я борюсь с этим, я схожу с ума.

Я получил Out Of Index Exception в этом коде.Код используется каждый раз, когда я нажимаю кнопку (из набора из 4 кнопок).

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

//I get my dataset from my WFC from this
data = client.GetEtapes(numTransformateur, IdEtape); 

//If my dataset is empty : this is were everything blows up
if (DBNull.Value.Equals(data.Tables[0].Rows[0]))
{
    LblDateDebutEtape.Text = "Date de début d'étape : ";
    LblDateFinEtape.Text = "Date de fin d'étape : ";

    LblDateDebutEtape.Text = LblDateDebutEtape.Text + " " + data.Tables[0].Rows[0][1].ToString();
    LblDateFinEtape.Text = LblDateFinEtape.Text + " " + data.Tables[0].Rows[0][2].ToString();

    LblDateDebutEtape.Visible = true;
    LblDateFinEtape.Visible = true;

    //I need to fetch another kind of data
    set = client.GetSousEtapesWithCommentary(data.Tables[0].Rows[0][0].ToString());

    //Same test as before
    if (DBNull.Value.Equals(set.Tables[0].Rows[0]))
    {
        Dtg_Fichiers.DataSource = data.Tables[0];
        Dtg_Fichiers.Columns[0].Visible = false;
        Dtg_Fichiers.Columns[Dtg_Fichiers.ColumnCount - 2].Visible = false;
    }
}

//In any case. Thoses does not affect the data I fetch at all.
this.GetButtonAllEnabled(button);
Dtg_Fichiers.ClearSelection();

Я столько всего перепробовал, мой код теперь как поле битвы.

Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ: Я просто тупой.Все, что у меня есть, это пойти с «data.Tables [0] .Rows.Count! = 0» в моем if.Не знаю, почему это не сработало раньше.Я думаю, логика программирования

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Попробуйте сначала проверить, является ли это нулевым значением, потому что если это так, у вас не будет 0 индекса.

if(data.Tables != null && data.Tables.Count > 0 && data.Tables[0].Rows != null && data.Tables[0].Rows.Count > 0)
{

}

Или вы можете сделать это меньше, но не проверяя счет.

if(data.Tables != null &&  data.Tables[0].Rows != null )
{

}
0 голосов
/ 12 февраля 2019

Проверьте это условие вместо вашего блока if

if(data.Tables.Count > 0 & data.Tables[0].Rows.Count > 0)
{ //your code
}

Дайте мне знать, если это решит вашу проблему.Также поделитесь исключением.

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