2013-07-12 73 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

相關問題