2012-11-25 27 views
2

我發現這個奇怪的,我有這樣的代碼:查詢拋出「IndexOutOfRange」

string getBatchesQuery = "SELECT DISTINCT CONVERT(VARCHAR(8), time, 4) AS Batch FROM Calls ORDER BY Batch"; 
SqlCommand getBatchesQueryCom = new SqlCommand(getBatchesQuery, connection); 

SqlDataReader getBatchesQueryReader = myCom.ExecuteReader(); 

List<string> allBatches = new List<string>(); 

while (getBatchesQueryReader.Read()) 
{ 

    allBatches.Add(getBatchesQueryReader["Batch"].ToString()); 

} 
getBatchesQueryReader.Close(); 

現在怎麼可能是Batch不存在?也許是因爲我是這樣命名的?

我該怎麼辦?

+0

可以在設置在'allBatches.Add斷點(getBatchesQueryReader [ 「批量」]的ToString());'看看做它拋出一個異常,也許它可能是什麼值'NULL'。 –

+0

您的閱讀器只有一列。爲什麼你不使用getBatchesQueryReader [0] –

回答

2

該列不存在,因爲您正在運行錯誤的命令。將myCom更改爲getBatchesQueryCom

SqlDataReader getBatchesQueryReader = getBatchesQueryCom.ExecuteReader(); 
+0

會有另一個例外。我認爲這簡單拼寫錯誤簡化我們的代碼 –

+2

我不是旁邊的代碼來檢查,但我認爲這是問題,並沒有它不是簡化基里爾,我只是一個普通的白癡。 –