索引超出了数组的范围

问题描述:

任何人都可以帮我解决这个问题吗?指数数组的边界之外。索引超出了数组的范围

private void PopulateWallPosts(string userId) 
    { 

     using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;")) 
     { 
      cn.Open(); 
      using (OdbcCommand cmd = new OdbcCommand("SELECT wp.WallPostings, p.PicturePath FROM WallPosting wp INNER JOIN User u ON u.UserID = wp.FriendUserID INNER JOIN Pictures p ON p.UserID = u.UserID WHERE wp.UserID=" + userId + " ORDER BY idWallPosting DESC", cn)) 
      { 
       //SELECT idWallPosting, wp.WallPostings, p.PicturePath FROM WallPosting wp LEFT JOIN User u ON u.UserID = wp.UserID LEFT JOIN Pictures p ON p.UserID = u.UserID WHERE wp.UserID=" + userId + " ORDER BY idWallPosting DESC 
       using (OdbcDataReader reader = cmd.ExecuteReader()) 
       { 
        test1.Controls.Clear(); 

        while (reader.Read()) 
        { 

         System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div"); 
         div.Attributes["class"] = "test"; 


         div.ID = String.Format("{0}", reader.GetString(0)); //idwallposting 
         string id = Convert.ToString(div.ID); 
         //store the div id as a string 
         Image img = new Image(); 
         img.ImageUrl = String.Format("{0}", reader.GetString(2)); //p.picturepath 
         img.AlternateText = "Test image"; 

         div.Controls.Add(img); 
         div.Controls.Add(ParseControl(String.Format("&nbsp&nbsp " + "{0}", reader.GetString(1)))); //wp.wallpostings 
         div.Attributes.Add("onclick", "confirm_delete(" + id + ");"); 
         // send the div id to javascript 
         div.Style["clear"] = "both"; 
         test1.Controls.Add(div); 

        } 
       } 
      } 
     } 
    } 

enter image description here

+0

能否请您展示上哪一行发生错误? – ysrb 2011-04-02 23:06:04

+1

@ysrb固定为你:) – 2011-04-02 23:09:50

GetString(2)看起来可疑,当你只能选择2列:

SELECT wp.WallPostings, p.PicturePath FROM ... 

由于它是基于0,这也许应该是GetString(1)

+0

了解它!所有完成都会在冷却时间结束时接受回答 – 2011-04-02 23:13:20