2013-07-12 45 views
1
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。任何想法是什么导致这一点?“IndexOutOfRangeException was unhandled”

+0

最有可能您的结果集为空,尝试检查result_start的长度,然后尝试从中指定某些值。 –

回答

1

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

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

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; 
} 
+0

你的意思是我必须添加一些数据到我的数据库,其中包含查询表? –

+2

不,你需要一个条件来检查是否有任何东西从'LanguageData.Select(...)'返回。你可能只是得到一个返回的空数组。因此'result_start [0]'会抛出一个异常,因为没有元素。 – computer10171

相关问题