Autor Beitrag
Layla
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 05.11.16 17:03 
Hallo liebe Community,

habe mich hier angemeldet, da ich wirklich nicht weiterkomme. Ich hoffe meine Frage ist in diesem Thread richtig, ansonsten bin ich über den Hinweis, wo die Lösung bereits steht sehr dankbar.

Ich habe mit C# im Visual Studio 2013 einen Treeview mit dynamischen Daten aus einer SQL-Datenbank befüllt. Jetzt möchte ich, wenn ein User auf einen Knoten klickt, die in der SQL Tabelle befindlichen Daten an eine View übergeben. Also dass in dieser View die Textboxen automatisch (mit den Daten aus der dahinterliegenden SQL Tabelle) befüllt werden.

Bin Anfänger und bin über jeden Hinweis dankbar!

Hoffe, ich konnte euch das Problem schildern, sonst fragt einfach. Ich weiß, dass ich nicht so gut erklären kann :)


Moderiert von user profile iconTh69: Topic aus Datenbanken (inkl. ADO.NET) verschoben am So 06.11.2016 um 09:43
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4033
Erhaltene Danke: 832

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: Sa 05.11.16 18:43 
Hallo und :welcome:

arbeitest du denn mit WinForms oder WPF?

Um dir besser helfen zu können, wäre es schön, wenn du uns dann zeigst, wie du bisher den TreeView befüllst (also nur der relevante Code dazu).
Layla Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 05.11.16 21:51 
Hallo :-)

Ich arbeite mit WebForms.

Mein Code sieht bisher so aus:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
        private void PopulateRootLevel()
        {   //SQL Statement der Datenanbindung an den Baum
            SqlConnection objConn = new SqlConnection("Hier ist meine SQLDatenbankverbindung gesetzt");
            SqlCommand objCommand = new SqlCommand("SELECT ID, isnull([Description1],'') + ' (' +isnull([Address4], '') + ', '+ isnull([City], '') +')' as Beschreibung, (Select Count(*) FROM [dbo].[tblCompanies] where [HoldingCompanyID] = t.ID ) AS childnodecount FROM [dbo].[tblCompanies] t  WHERE Hierachy is null AND xxxHide = 0  AND HoldingCompanyID is not null", objConn);
            SqlDataAdapter da = new SqlDataAdapter(objCommand);
            DataTable dt = new DataTable();
            da.Fill(dt);

            PopulateNodes(dt, TreeView1.Nodes);
        }

        private void PopulateNodes(DataTable dt, TreeNodeCollection nodes)
        {
            foreach (DataRow dr in dt.Rows)
            {
                TreeNode tn = new TreeNode();
                tn.Text = dr["Beschreibung"].ToString();
                tn.Value = dr["ID"].ToString();
                nodes.Add(tn);


                tn.PopulateOnDemand = (Convert.ToInt32(dr["childnodecount"]) > 0);
            }
        }
        //Hinzufügen des Parent
        private void PopulateSubLevel(int parentid, TreeNode parentNode)
        {
            SqlConnection objConn = new SqlConnection("Hier ist meine SQLDatenbankVerbindung gesetzt");
            SqlCommand objCommand = new SqlCommand("SELECT ID, isnull([Description1],'') + ' (' +isnull([Address4], '') + ', '+ isnull([City], '') +')' as Beschreibung, (Select Count(*) FROM [dbo].[tblCompanies] where [HoldingCompanyID] = t.ID ) AS childnodecount FROM [dbo].[tblCompanies] t  WHERE Hierachy is not null AND xxxHide = 0  AND HoldingCompanyID != 1 AND HoldingCompanyID is not null and HoldingCompanyID = @parentID", objConn);
            objCommand.Parameters.Add("@parentID", SqlDbType.Int).Value = parentid;
            SqlDataAdapter da = new SqlDataAdapter(objCommand);
            DataTable dt = new DataTable();
            da.Fill(dt);
            PopulateNodes(dt, parentNode.ChildNodes);
        }

        protected void TreeView1_TreeNodePopulate(object sender, System.Web.UI.WebControls.TreeNodeEventArgs e)
        {
            PopulateSubLevel(Convert.ToInt32(e.Node.Value), e.Node);
        }


Ich hoffe das hilft?

LG Layla

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4033
Erhaltene Danke: 832

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: So 06.11.16 10:43 
Leider kenne ich mich mit WebForms nicht aus, laut Doku müßtest du aber wohl das TreeView.SelectedNodeChanged-Ereignis benutzen (beachte auch den Hinweis bzgl. der SelectAction-Eigenschaft).
Und dort dann die in SelectedNode.Value von dir angegebene ID auswerten und eine entsprechende SQL-Abfrage starten.

Für diesen Beitrag haben gedankt: Layla