评论和子评论

时间:2012-01-22 07:15:55

标签: c# asp.net odbc

我需要将子评论放在我以下方式尝试的评论之下,它只能检索第一个主评论及其所有子评论,但无法从第二个主评论中加载。我使用的逻辑是

            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是主要评论的序列号。

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

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

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

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