我需要将子评论放在我以下方式尝试的评论之下,它只能检索第一个主评论及其所有子评论,但无法从第二个主评论中加载。我使用的逻辑是
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是主要评论的序列号。
我的代码出了什么问题?
答案 0 :(得分:2)
当您使用dr
获取注释时,在内部循环中使用DataReader覆盖它以获取子注释。
您应该为这两个变量使用不同的变量(例如drComments
和drSubComments
)
从功能的角度看,这是错误的。我的意见是,还有一些改进要做。修复代码后,我强烈建议您在CodeReview上发布此代码,以获得有关如何重构代码的一些好建议。