我在Database中有LearningObject表,其中包含(ID,级别,主题,类型)。 Level字段包含(一,二,三)。每个级别都有很多科目。 我需要将数据从此数据库加载到TreeView:每个级别表示为父级,每个主题表示在适当级别下的子级。 下面的代码跟我没有用来实现我的想法。 我有这个错误 (类型' MySql.Data.MySqlClient.MySqlException'发生在MySql.Data.dll中,但未在用户代码中处理 附加信息:未知栏'一个'在' where子句')
protected void Page_Load(object sender, EventArgs e)
{
fill_Tree2();
}
public void fill_Tree2()
{
DataSet PrSet = PDataset("Select DISTINCT level from learningobject");
TreeView1.Nodes.Clear();
foreach (DataRow dr in PrSet.Tables[0].Rows)
{
TreeNode tnParent = new TreeNode();
tnParent.Text = dr["level"].ToString();
tnParent.Value = dr["level"].ToString();
tnParent.PopulateOnDemand = true;
tnParent.ToolTip = "Click to get Child";
tnParent.SelectAction = TreeNodeSelectAction.SelectExpand;
tnParent.Expand();
tnParent.Selected = true;
TreeView1.Nodes.Add(tnParent);
FillChild(tnParent, tnParent.Value);
}
}
public void FillChild(TreeNode parent, string ParentID)
{
DataSet ds = PDataset("Select subject,level from learningobject where level =" + ParentID.ToString());
parent.ChildNodes.Clear();
foreach (DataRow dr in ds.Tables[0].Rows)
{
TreeNode child = new TreeNode();
child.Text = dr["subject"].ToString().Trim();
child.Value = dr["level"].ToString().Trim();
if (child.ChildNodes.Count == 0)
{
child.PopulateOnDemand = true;
}
child.ToolTip = "Click to get Child";
child.SelectAction = TreeNodeSelectAction.SelectExpand;
child.CollapseAll();
parent.ChildNodes.Add(child);
}
}
protected DataSet PDataset(string Select_Statement)
{
string connStr = @"Data Source=localhost;Database=ahsschema;User Id=webuser;Password=";
using (MySqlConnection SqlCon = new MySqlConnection(connStr))
{
MySqlDataAdapter ad = new MySqlDataAdapter(Select_Statement, SqlCon);
DataSet ds = new DataSet();
ad.Fill(ds);
return ds;
}
}
答案 0 :(得分:0)
试试这句话
DataSet ds = PDataset("Select subject, level FROM learningobject WHERE level ='"+ ParentID.ToString()+"'");
不能发表评论,所以不得不把它放在这里抱歉,如果没有帮助