string str_cnn = "provider=Microsoft.Jet.OLEDB.4.0; Data Source=";
string str_stringfile = "mdb\mydb.mdb";
OleDbCommand cmd;
OleDbConnection cnn;
OleDbDataReader reader;
string str_sql;
string str_conn = str_cnn + MapPath(str_stringfile);
cnn = new OleDbConnection(str_conn);
str_sql = "SELECT t_menuL0.*, t_menuL1.* FROM t_menuL1 RIGHT JOIN t_menuL0 ON t_menuL1.m1_m0id = t_menuL0.m0_id";
cnn.Open();
cmd = new OleDbCommand(str_sql,cnn);
reader = cmd.ExecuteReader();
//以上是数据库的连接和读取
Panel pl_fenlei, pl_fenleixinwen, pl_cr;
HyperLink hl_xiangmu,hl_fenlei;
//这里定义了几个控件用来添加到前台的 下面是数据读取的循环
while (reader.Read()) {
if (FindControl((div_mainm0id.ID).ToString() + "_" + reader["m0_id"].ToString()) == null) {
// 用m0_id 字段创建对应控件, 但是在数据库中有重复出现,所以要检测
hl_fenlei = new HyperLink();
hl_fenlei.Text = reader["m0_ttl"].ToString();
pl_fenlei = new Panel();
pl_fenlei.ID = (div_mainm0id.ID).ToString() + "_" + reader["m0_id"].ToString();
pl_fenlei.CssClass = "fenlei";
pl_fenlei.Controls.Add(hl_fenlei);
pl_fenleixinwen = new Panel();
pl_fenleixinwen.ID = "fenleixinwen" + "_" + reader["m0_id"].ToString();
pl_fenleixinwen.CssClass = "fenleixinwen";
pl_fenlei.Controls.Add(pl_fenleixinwen);
div_mainm0id.Controls.Add(pl_fenlei);
}
hl_xiangmu = new HyperLink();
hl_xiangmu.Text=reader["m1_ttl"].ToString();
if (FindControl("fenleixinwen_" + reader["m1_m0id"].ToString())!=null) {
((Panel)FindControl("fenleixinwen_" + reader["m1_m0id"].ToString())).Controls.Add(hl_xiangmu);
}
// 问题就出在上面的if语句了
}
cnn.Close();
// 前台代码什么都没有 就定义了div标签 向标签里面添加数据
<body>
<form id="form1" runat="server">
<div>
<div runat="server" id="div_mainm0id">
</div>
</div>
<div id="div1"></div>
</form>
</body>