Treeview - MySQL умножить числа под 1 дерево - PullRequest
0 голосов
/ 04 ноября 2011

Итак, я получил это древовидное представление, в котором я хочу отобразить некоторых людей с ребенком в качестве чисел из моей базы данных

, так что это моя база данных клиентов

/ Clientnr / имя / фамилия

и вторая база данных содержит номера и данные их счетов-фактур

/ Invoicnr / Clientnr / status /

теперь возможно сделать мое дерево похожим на

Имя Surename
| ___ номер счета
| _ _
второй номер счета
| _ _ еще один ... пока я не получу их все

я просто не могу получить номера счетов под 1 именем :) он делает разделение для каждого счета, который есть для этого человека, можно ли поместить их все в один вместо того, чтобы умножать одно и то же имя

теперь это мой код

 try
        {


            MySqlConnection conn = new MySqlConnection("SERVER=localhost;" +
                        "DATABASE=factoram;" +
                        "UID=root;" +
                        "PASSWORD=root;");

            new MySqlDataAdapter("SELECT klienten.Klientnr,\n" +
     "klienten.Voornaam,\n" +
     "klienten.Naam,\n" +
     "rekening.Rekeningnr FROM\n" +
     "rekening\n" +
     "INNER JOIN klienten ON rekening.Klientnr = klienten.Klientnr  ORDER BY klienten.naam asc ;", conn).Fill(dt);


            foreach (DataRow r in dt.Rows)
            {
                int b = dt.Rows.IndexOf(r);

                tvfacturen.Nodes.Add(r[1].ToString() + " " + r[2].ToString());

                tvfacturen.Nodes[b].Nodes.Add(r[3].ToString());


            }

        }
        catch (Exception b)
        {
            MessageBox.Show(b.ToString());



        }

1 Ответ

0 голосов
/ 04 ноября 2011

Nodes.Add возвращает узел. Просто вызовите Nodes.add свойства Nodes созданного узла.

var oNode = this.treeView.Nodes.add("OhYeah");
var oChild = oNode.Nodes.add("child");

Извините, что я неправильно понял, сделайте это вместо своего foreach

var oGrouped = dt.Rows.Cast<DataRow>().GroupBy(r => r[1].ToString() + " " + r[2].ToString());
foreach (var oClient in oGrouped)
{
    var oClientNode = this.TreeView.Nodes.Add(oClient.Key);
    foreach (var oInvoice in oClient)
    {
        oClientNode.Nodes.Add(oInvoce[3].ToString());
    }
}
...