“IndexOutOfRangeException未处理”

时间:2013-07-12 19:26:42

标签: c# asp.net sql

string Query = "SELECT [AA], [TEXT] FROM [TABLE] WHERE FK_ML_PROGRAM=200 AND FK_ML_LANGUAGE=" +  Convert.ToInt32(cboLanguage.SelectedIndex) + " AND AA like 'Msg_%' ORDER BY ID ";
LanguageData = DAL.ExecuteDataTable(Query);

private DataRow GetRows(string b)
{
    DataRow[] result_start = LanguageData.Select("AA='" + b.ToString() + "'");
    DataRow Row = result_start[0];

    return Row;
}

当我运行应用程序时,它会抛出IndexOutOfRangeException。关于是什么导致这个问题的任何想法?

2 个答案:

答案 0 :(得分:5)

result_start可能没有元素。你需要一张支票:

private DataRow GetRows(string b)
{
    DataRow[] result_start = LanguageData.Select("AA='" + b.ToString() + "'");
    if (results_start.Length > 0)
        return result_start[0];

    return null;
}

答案 1 :(得分:1)

过滤器可能不匹配已返回的数据集中的任何行。

在尝试从中获取特定行之前,您需要检查result_start是否有行。