login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[VB] combobox vullen met db gegevens

Offline Stefan14 - 19/06/2007 20:48 (laatste wijziging 19/06/2007 20:53)
Avatar van Stefan14PHP gevorderde Ik ben nog niet al te lang bezig met VB, maar ik wil graag een rij van 15 comboboxen vullen met databasegegevens uit 1 tabel.

Dit om producten in te voeren.
Alle producten staan in 1 tabel en die moet dus uitgelezen worden.

Nu is dit gelukt op de volgende manier:
visueel ingesteld:
DataSource = DataSet3.productnaam
DisplayMember = productnaam
name = product1 (en verder t/m 15)

code:
  1. DataSet3.Clear()
  2. OleDbDataAdapter1.Fill(DataSet3)


Dit werkt allemaal prima, totdat je een van de comboboxen wilt veranderen, zodra je dat namelijk doet veranderen ze allemaal, en dat is niet wat ik wil. In iedere combobox moet bij wijze van spreken gewoon een apart product kunnen staan.
Hoe verwezenlijk ik dit?

Daarnaast zou ik ook graag willen dat de eerste keuze een lege regel is en daarna pas de lijst met producten komt om zo bij het invoeren in de db degene die nog leeg zijn niet in te voeren.

11 antwoorden

Gesponsorde links
Offline Abbas - 19/06/2007 20:49 (laatste wijziging 19/06/2007 20:51)
Avatar van Abbas Gouden medaille

Crew .NET
CodeTags gebruiken, anders gaat de crew zagen... 
Ik kan niet echt aan je probleem uit, post eens wat meer code indien mogelijk en zeg waar het fout/helemaal niet gaat.
Offline Stefan14 - 19/06/2007 20:53 (laatste wijziging 19/06/2007 21:03)
Avatar van Stefan14 PHP gevorderde @titjes, die 2 regeltjes, nou ja 

Maar dat is de enige code die ik heb, want de rest is allemaal via dat visuele gedeelte ingesteld, ik wil wel de 'windows generated code' posten.

windows generated code:
http://plaatscode.be/5693/
(let op, enkele duizenden regels)
Maar volgens mij is dit alleen maar voor het layout gedeelte, dus of je er nu zoveel aan hebt.

EDIT: ik heb even het volledige bestand in een zipje online gezet zodat degenen die visual studio hebben het even kunnen downloaden en alles kunnen zien.
http://www.euro...estand.zip
Offline Abbas - 19/06/2007 21:09 (laatste wijziging 19/06/2007 21:09)
Avatar van Abbas Gouden medaille

Crew .NET
Dank je, aan het zipje heb ik meer Ik zal het eens bekijken en dan iets laten weten! 
En zoals je zegt: die Windows Generated Code is alleen maar het visuele gedeelte...
Offline Stefan14 - 19/06/2007 21:34
Avatar van Stefan14 PHP gevorderde alvast hartelijk dank titjes, ik wacht rustig af 
Offline Abbas - 19/06/2007 22:21 (laatste wijziging 19/06/2007 22:22)
Avatar van Abbas Gouden medaille

Crew .NET
Met de methode hoe jij werkt kom je een aantal problemen tegen.

- Ze veranderen allemaal omdat ze dezelfde DataSource hebben
- Met jouw methode kan je niet 1 product per ComboBox
-> Stel je hebt 15 Boxen en 15 producten moet je met een query oid werken om er 1 per Box te krijgen en dat gaat niet aangezien je met een DataSet werkt
- En de eerste regel kan niet blank zijn omdat je er een DataSource
hebt op gezet...
Offline Stefan14 - 19/06/2007 23:15
Avatar van Stefan14 PHP gevorderde Ok, en hoe moet ik het dan doen? want heb deze methode uit een boek dat ik gekocht heb.
Offline Abbas - 19/06/2007 23:18 (laatste wijziging 19/06/2007 23:44)
Avatar van Abbas Gouden medaille

Crew .NET
Kan je me je database eens geven dan want ik heb deze niet en het is onhandig om dat allemaal uit te zoeken zonder DB... 

edit: bedankt, morgen begin ik eraan! Nu slapen...:D
Offline Stefan14 - 19/06/2007 23:32
Avatar van Stefan14 PHP gevorderde uiteraard, staat nog niet veel in, maar het gaat om de structuur.

http://www.euro...estand.mdb
Offline Abbas - 20/06/2007 17:15 (laatste wijziging 20/06/2007 17:16)
Avatar van Abbas Gouden medaille

Crew .NET
Je kan zo werken om dynamisch de ComboBox te vullen:

  1. Dim item As ListItem
  2. item = new ListItem()
  3. item.Text = ""
  4. item.Value = ""
  5. product1.Items.Add(item)
  6.  
  7. Dim query As String
  8. query = "SELECT productnaam FROM producten"
  9.  
  10. Dim myComm As OleDbCommand = new OleDbCommand(query, uw_verbinding)
  11. Dim myReader As OleDbDataReader
  12.  
  13. Try
  14. uw_verbinding.Open()
  15. myReader = myComm.ExecuteReader()
  16. While myReader.Read()
  17. item = new ListItem()
  18. item.Value = myReader.GetString(0)
  19. item.Text = myReader.GetString(0)
  20. 'product1 is de naam van ComboBox
  21. product1.Items.Add(item)
  22. End While
  23. myReader.Close()
  24. Catch ex As Exception
  25. MessageBox.Show(ex.Message)
  26. Finally
  27. uw_verbinding.Close()
  28. End Try


Zo worden de gegevens vanuit de DB in je ComboBox geplaatst en heb je 1 leeg item voor alle andere items.
Offline Stefan14 - 22/06/2007 21:47 (laatste wijziging 23/06/2007 20:43)
Avatar van Stefan14 PHP gevorderde sorry voor de late reactie, maar kon er een aantal dagen niet aan werken.

Ik heb het geprobeerd, maar wat is mijn verbinding? Of hoe zet ik die op als die er nog niet is?

En onder de volgende dingen staat een blauw lijntje aangevend dat dit dus nog niet helemaal correct is. (regelnummers als hierboven)

1: ListItem
2: ListItem
10: OleDbCommand
11: OleDbDataReader
14: uw_verbinding
17: ListItem
27: uw_verbinding

btw, heb van product1.Items.Add(item) het volgende gemaakt:
  1. product1.Items.Add(item)
  2. product2.Items.Add(item)
  3. product3.Items.Add(item)
  4. enz.


Neem aan dat dit juist is?

*schop*
Offline Abbas - 23/06/2007 22:06
Avatar van Abbas Gouden medaille

Crew .NET
Je moet je verbinding in je code declareren, iets in de zin van:
  1. OleDbConnection myConn = new OleDbConnection("...")

Al die dingen met een lijntje zijn zaken die je moet declareren, in de code die ik je heb gegeven staan deze gedeclareerd. Met het stukje code dat je geeft vul je alle lijsten met alle producten, wil je voor elke lijst 1 product, dan moet je voor elke rij een aparte query maken en uitvoeren.

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.243s