2016-06-17 3 views
0

(ID、レベル、件名、タイプ)を含むデータベース内にLearningObjectテーブルがあります。 レベルフィールドには、(1,2,3)が含まれます。各レベルには多くの科目があります。 このデータベースからツリービューにデータをロードする必要があります。各レベルは親として表され、各サブジェクトは適切なレベルの子として表されます。 以下のコードは私の考えを実装するために私と一緒には機能しませんでした。 私はこのエラーがあります (MySql.Data.MySqlClient.MySqlExceptionタイプの例外はMySql.Data.dllで発生しましたが、ユーザコード で処理されませんでした。追加情報: 'where句'で不明な列 'one')親と子が同じテーブルにあるときに、データベースからツリービューにデータをロードする方法

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; 

    } 
} 

答えて

-1

DataSet ds = PDataset("Select subject, level FROM learningobject WHERE level ='"+ ParentID.ToString()+"'"); 

この文を試してみてくださいので、それは

+0

あなたの構文エラーを修正してくださいを助けていない場合は申し訳ありませんそれをここに入れていたコメントすることはできません。 – Kason

+0

@ Kason The "?done。あなたはそれのどの部分を述べる必要があります。すみません、投票前にコメントしています。.....そして、私のプロフィールを見て、それを指摘してくれてありがとう – JustASimpleGuy

+0

これは簡単です、あなたはそれを見つけてあなた自身で修正しなければなりません。すべてのバグを修正した後、下の投票は投票になるでしょう、それについて心配しないでください。 – Kason

関連する問題