Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Om treeView och databas.

Postades av 2003-12-03 13:35:07 - Benni Svensson, i forum c# (c-sharp), Tråden har 9 Kommentarer och lästs av 781 personer

Jag har problem med att ladda en treeView ifrån en databas.
Min SQL:
<code>
SQLstring = "SELECT DISTINCT t_Län.Län, t_Kommun.Kommun FROM t_Län INNER JOIN t_Kommun ON t_Län.L_ID = t_Kommun.Län ORDER BY t_Län.Län, t_Kommun.Kommun";
</code>
Jag ville alltså ladda alla kommunerna först, och sedan i noderna resp kommun.
<code>
da = new OleDbDataAdapter(SQLstring,con);
ds = new DataSet("frånLänKommun");
con.Open();
da.Fill(ds,"frånLänKommun");
con.Close();
int rader = ds.Tables["frånLänKommun"].Rows.Count;
nr = new string[rader];
for(int a=0;a<rader;a++)
{
treeView1.Nodes.Add(ds.Tables["frånLänKommun"].Rows[a]["Län"].ToString());
//nr[a] = ds.Tables["frånKunder"].Rows[a]["Kundnr"].ToString();
}
}catch(Exception fel)
{
MessageBox.Show(fel.Message,"Här blev det fel",MessageBoxButtons.OK,MessageBoxIcon.Error);}
</code>
Men jag kommer alldeles fel.
Koden ser kanske lite mysko ut, jag har använt en del ifrån min övningsbok, men den täcker ju inte detta.

Hur bör jag göra?


Svara

Sv: Om treeView och databas.

Postades av 2003-12-03 15:31:32 - Benni Svensson

Jag har kommit en bit på vägen, men kan inte få in tätt child...
Jag måste väll ha en WHERE sats??
<code>
treeView1.Nodes.Clear();
string SQLstring ="SELECT Län FROM t_Län"; treeView1.Nodes.Clear();
string SQLstring ="SELECT Län FROM t_Län";
da = new OleDbDataAdapter(SQLstring, con);
ds = new DataSet("frånLän");

con.Close();
con.Open();
da.Fill(ds,"frånLän");
con.Close();

treeView1.ImageIndex=0;
int rader = ds.Tables["frånLän"].Rows.Count;
nr = new String[rader];
for(int a = 0;a < rader; a++)
{
TreeNode node = treeView1.Nodes.Add(ds.Tables["frånLän"].Rows[a]["Län"].ToString());

string SQL ="SELECT DISTINCT t_Län.Län, t_Kommun.Kommun FROM t_Län INNER JOIN t_Kommun ON t_Län.L_ID = t_Kommun.Län ORDER BY t_Län.Län, t_Kommun.Kommun";
da1 = new OleDbDataAdapter(SQL, con);
ds1 = new DataSet("frånLän_Kommun");
con.Close();
con.Open();
da1.Fill(ds1,"frånLän_Kommun");
con.Close();

int rad = ds1.Tables["frånLän_Kommun"].Rows.Count;
nr = new String[rad];

for(int b = 0;b < rad; b++)
{
node.Nodes.Add
(ds1.Tables["frånLän_Kommun"].Rows[b]["Kommun"].ToString());
}

}</code>
Hur får jag in childen?


Svara

Sv: Om treeView och databas.

Postades av 2003-12-03 15:33:41 - Johan Bovin

hur ser tabellen ut?
typ:
Län |Kommun
Skåne |Malmö
Skåne |Lund
Halland |Laholm
...
Jag vet inte om detta är det bästa sättet men det borde fungera iallafall:

<code>
Hashtable unika_lan=new Hashtable();
int lanSelected=1; //ikon indexet för län, när lännoden är öppen i imageliste
int lanVanlig=0; //ikon indexet för vanligt län
int kommunIkonIndex=2;
for(int a=0;a<rader;a++)
{
string lan=ds.Tables["frånLänKommun"].Rows[a]["Län"].ToString();
string kommun=ds.Tables["frånLänKommun"].Rows[a]["Kommun"].ToString();
if(unika_lan.ContainsKey(lan)) //om länet redan finns
{
ArrayList kommunlista=(ArrayList)unika_lan[lan];
kommunlista.Add(kommun); //lägg till kommunen till länet
unika_lan[lan]=kommunlista;
}
else //länet fanns inte. Skapa en kommunlista
{
ArrayList nykommunlista=new ArrayList();
nykommunlista.Add(kommun);
unika_lan[lan]=nykommunlista;
}
}
IDictionaryEnumerator idic=unika_lan.GetEnumerator();
while(idic.MoveNext()) //för alla län
{
string lan=(string)idic.Key;
TreeNode node=new TreeNode(lan); //skapa en län-trädnod
node.SelectedImageIndex=lanSelected;
node.ImageIndex=lanVanlig;
ArrayList kommuner=(ArrayList)idic.Value; //hämta kommunlistan
for(int i=0;i<kommuner.Count;i++) //för varje kommun
{
TreeNode kommun=new TreeNode((string)kommuner[i]); //skapa en nod
kommun.SelectedImageIndex=kommunIkonIndex;
kommun.ImageIndex=kommunIkonIndex;
node.Nodes.Add(kommun); //lägg till länets nod
}
treeView1.Nodes.Add(node);
}</code>
Ett alternativ hade oxå varit att på nåt sätt ställa frågor direkt mot datatablen så att du skulle kunna filtrera på län. Tror att man måste ha en dataview då men är osäker...
Databas grejer är inte riktigt mitt härad


Svara

Sv: Om treeView och databas.

Postades av 2003-12-03 16:23:21 - Benni Svensson

Helt underbart.
Ett smolk i bägaren trots allt.
Jag ville ha olika iconer för län resp kommun, hittar inte var jag skall lägga dem för att det skall bli bra.

Tack för all din hjälp.


Svara

Sv: Om treeView och databas.

Postades av 2003-12-03 16:49:07 - Johan Bovin

Lägg till en imagelist till din form (eller var du nu har trädet).
Ändra treeviewns Imagelist till denna
sen kan du bara sätta node.SelectedImageIndex och ev node.ImageIndex till det indexet som du ikon har i imagelistan...

ändrar lite i koden ovan...


Svara

Sv: Om treeView och databas.

Postades av 2003-12-03 17:12:03 - Benni Svensson

Tack, helt kanon.
Men hur kan jag kolla om det är child eller parent jag klicka på?

<code>
if(treeView1.SelectedNode=treeView1.Parent)
{
label1.Text=treeView1.SelectedNode.Text;
treeView1.SelectedImageIndex=2;
}
</code>
Fungerar ju inte(skratta inte).
Jag skulle behöva ha ut t ex
Kronoberg Växjö
Går det?


Svara

Sv: Om treeView och databas.

Postades av 2003-12-03 19:39:44 - Johan Bovin

Nåt sånt här kanske:
<code>
TreeNode node=treeView1.SelectedNode;
string txt="";
if(node.Parent!=null) //det är en child (kommun)
{
txt=node.Parent.Text;
txt+=" " +node.Text
node.SelectedImageIndex=2;
}
else
{
txt=node.Text;
node.SelectedImageIndex=2;
}
label1.Text=txt;
</code>


Svara

Sv: Om treeView och databas.

Postades av 2003-12-03 22:22:32 - Benni Svensson

Helt kalas, tack.

Jag har upptäckt ett problem med fööra problemet, lägga till child i treeview:n.
Den sortera kommunerna rätt, men länen är fel.
Det hjälper inte hur jag än försöker med SQL:en.
Går arrayen att sortera?


Svara

Sv: Om treeView och databas.

Postades av 2003-12-04 08:21:02 - Johan Bovin

testa att sätta treeView1.Sorted=true; då skall den sortera noderna i bokstavsordning... iallafall enligt dokumentationen... (och när jag testade lite)


Svara

Sv: Om treeView och databas.

Postades av 2003-12-04 11:23:18 - Benni Svensson

Nu skäms jag.
Jag satt och irrade mig in i koden och kunde inte hitta lösning där så...
Tack för din underbara hjälp.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 155
27 952
271 704
6 090
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies