2016-11-09 36 views
0

我想從使用MVC5 C#的SQL數據庫中檢索數據並將數據存儲到ViewBag數組中。但是,代碼導致IndexOutOfRangeException錯誤。MVC5 C# - System.IndexOutOfRangeException

query = "SELECT Id, UserName, List_Order FROM AspNetUsers WHERE LoggedIn = 1 ORDER BY 
List_Order ASC"; 
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager 
.ConnectionStrings["DefaultConnection"].ConnectionString); 
SqlCommand cmd = new SqlCommand(query, conn); 
conn.Open(); 
SqlDataReader rdr = cmd.ExecuteReader(); 
int n = 0; 
while(rdr.Read()) 
{ 
    if (rdr["UserName"].ToString() != null) 
    { 
     //Exception Details: System.IndexOutOfRangeException: LoggedIn 
     ViewBag.speakers[n] = new string[4] { rdr["Id"].ToString(), rdr["UserName"] 
.ToString(), rdr["List_Order"].ToString(), rdr["LoggedIn"].ToString() }; 
     n++; 
    } 
} 
+3

'SELECT Id,UserName,List_Order' - >'rdr [「LoggedIn」]' –

+0

@JasonP謝謝。我無法相信我在SQL查詢中忘記了這一點。 –

+0

@Daniel你可以發佈你的解決方案嗎?其他人可能會從中受益。 –

回答

1

解決方案是我忘了LoggedIn列添加到查詢。

query = "SELECT Id, UserName, List_Order, LoggedIn FROM AspNetUsers WHERE LoggedIn = 1 
ORDER BY List_Order ASC"; 
相關問題