2012-01-22 250 views
0

我需要子注释才可以在下面的评论我试着在下面的方式,它可以只检索第一个主要评论及其所有的子评论,但无法从第二个主要评论加载。我使用的逻辑是评论和子评论

  MyConnection.Open(); 
      OdbcCommand cmd = new OdbcCommand("Select * from maincomments", MyConnection); 
      OdbcDataReader dr = cmd.ExecuteReader(); 
      while (dr.Read()) 
      { 
       string abc1 = dr[0].ToString(); 
       string abc2 = dr[1].ToString(); 
       string abc3 = dr[2].ToString(); 
       string abc4 = dr[3].ToString(); 
       string abc5 = dr[4].ToString(); 
       string abc6 = dr[5].ToString(); 
       string abc7 = dr[6].ToString(); 

       maincomm.Controls.Add(new LiteralControl(abc2 + "<br />" + abc5 + "<br />")); 
       cmd = new OdbcCommand("Select * from subcomments where acc_id=?", MyConnection); 
       cmd.Parameters.Add("@email", OdbcType.BigInt, 20).Value = abc1; 
       dr = cmd.ExecuteReader(); 
       while (dr.Read()) 
       { 
        string abcd1 = dr[0].ToString(); 
        string abcd2 = dr[1].ToString(); 
        string abcd3 = dr[2].ToString(); 
        string abcd4 = dr[3].ToString(); 
        string abcd5 = dr[4].ToString(); 
        string abcd6 = dr[5].ToString(); 
        string abcd7 = dr[6].ToString(); 
        string abcd8 = dr[7].ToString(); 
        maincomm.Controls.Add(new LiteralControl(abcd3 + "<br />" + abcd6 + "<br />")); 
       } 
      } 
      MyConnection.Close(); 

在上面的代码ACC_ID是maincomments的序列号。

我的代码出了什么问题?

回答

2

当您使用dr来获取评论时,在内部循环中,您将使用DataReader覆盖它以获取子注释。

,您应该使用不同的变量两个(例如drCommentsdrSubComments

这就是看起来从功能上看是错误的。我的意见是,还有一些改进要做。修复代码之后,我强烈建议在CodeReview上发布此代码,以获取有关如何重构它的一些好建议。

+0

谢谢!这工作:) –