login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[VB.net] Inserten in database met disconnected toegang (Opgelost)

Offline Maikelce - 13/03/2008 17:53 (laatste wijziging 13/03/2008 18:18)
Avatar van MaikelceLid Ik ben een programmatje aan het schrijven in VB.net dat communiceet met een database. Ik schrijf dit echter met Disconnected toegang.

Nu heb ik een vraagje dat ik ga stellen met een voorbeeld.
Ik heb 2 tabellen: tblKlanten en tblCategorie.
tblCategorie zijn: 60 plussers, pubers, kinderen, volwassen en bij elke catgegorie moeten ook Klanten kunnen worden gezet deze uit tblKlanten.
Een klant gaat zich inschrijven, geeft zijn geboortedatum(mijn programma berekent de leeftijd en geeft dan intCategorie terug). Nu is mijn vraag als bKlantNr de nummer is van klant hoe kan ik deze in die kolom klanten zetten bij tblCategorie?

16 antwoorden

Gesponsorde links
Offline Stefan14 - 13/03/2008 17:59
Avatar van Stefan14 PHP gevorderde jezus, er is echt bijna niets te begrijpen van je verhaal  

maar wat ik denk dat jij probeert te doen is om een klantnummer in de tabel categorie te zetten?
dat is niet zoals het hoort, de categorie waartoe een klant behoort hoor je als volgt op te slaan, namelijk de categorie (liefst categorieID), sla je op in het record van de klant in de tabel klanten.
Offline Maikelce - 13/03/2008 18:07
Avatar van Maikelce Lid Ik zal het eventjes tekenen:
Er kan dus maar 1 klant in elke categorie volgens dit mja soit.

TblCategorie:

CategorieID CategorieNaam KlantID
1 60+

TblKlanten:

KlantID KlantNaam Geboortedatum
1 Joske 15/02/1900

Hoe kan ik die klantID van tblKlanten in de kolom KlantID van tblCategorie krijgen.

Offline Abbas - 13/03/2008 18:12
Avatar van Abbas Gouden medaille

Crew .NET
Je haalt dan het ID van de tabel Klanten op aan de hand van de naam die je wilt en dan steek je dat ID in de tabel Categorien. Dit, als ik begrijp wat je bedoelt want je beginpost is heel vaag en de titel zegt ook al niet echt veel. Leg anders nog eens duidelijk en met Nederlands correcte zinnen uit wat je wilt zeggen! 
Offline Maikelce - 13/03/2008 18:15 (laatste wijziging 13/03/2008 18:17)
Avatar van Maikelce Lid Kijk je hebt 2 tabellen: tblCategorien en tblKlanten.
Je kan je als klant inschrijven, aan de hand van de geboortedatum die je opgeeft word je leeftijd berekent dat je in een categorie zet.
Deze persoon word opgeslagen bij tblKlanten.
Maar het ID van die persoon moet ook bij de Categorie waartoe hij hoort komen te staan in tblCategorien.

Dus dan zou er in je database dit meoten komen staan:

tblCategorie

CategorieID NaamCategorie KlantID
1 ................ 60+.................1

tblKlanten

KlantID NaamKlant leeftijd
1...........Jef........... 65
Offline Stefan14 - 13/03/2008 18:17 (laatste wijziging 13/03/2008 18:18)
Avatar van Stefan14 PHP gevorderde naast het feit dat je vraag niet echt duidelijk is zou ik toch nog eens serieus naar je datamodel kijken, want dat klopt echt niet zoals je het nu doet.

EDIT: ik begrijp nu wel wat je wilt doen, maar je moet geen klantenID's in de categorien tabel gaan opslaan, maar andersom. Je moet het id van de categorie waar die persoon in hoort opslaan in een aparte kolom in je tabel klanten.
Offline Maikelce - 13/03/2008 18:20
Avatar van Maikelce Lid
Stefan14 schreef:
naast het feit dat je vraag niet echt duidelijk is zou ik toch nog eens serieus naar je datamodel kijken, want dat klopt echt niet zoals je het nu doet.

EDIT: ik begrijp nu wel wat je wilt doen, maar je moet geen klantenID's in de categorien tabel gaan opslaan, maar andersom. Je moet het id van de categorie waar die persoon in hoort opslaan in een aparte kolom in je tabel klanten.


Dus eigenlijk moet ik dit hebben in mijn database

tblCategorie

CategorieID NaamCategorie
1 ................ 60+.............

tblKlanten

KlantID NaamKlant leeftijd Categorie
1...........Jef........... 65.....1

Offline Stefan14 - 13/03/2008 18:25 (laatste wijziging 13/03/2008 18:26)
Avatar van Stefan14 PHP gevorderde juist! zo moet het inderdaad.

nu heb je niet het probleem dat als je bijv. een categorie van naam wilt veranderen je tig van records moet gaan aanpassen.
en zo zijn er nog meer voordelen te bedenken.

EDIT: oh ja, leeftijd sla je niet op, maar bereken je altijd a.d.h.v. een geboortedatum, anders moet je elke dag gaan controleren welke personen een dagje ouder zijn geworden.
Offline Maikelce - 13/03/2008 18:33
Avatar van Maikelce Lid Ik heb even gevraagt of ik het zo mocht doen en hij zei: die categorieen blijven altijd hetzelfde hetzelfde, alles moet hetzelfde blijven buiten dat je nieuwe klanten kunt maken. Momenteel heb ik dit als code:


  1. Private Sub btnInschrijven_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInschrijven.Click
  2.  
  3. Try
  4.  
  5.  
  6. Dim strNaam As String
  7. Dim dtrow As lolDataSet.tblKlantenRow
  8. Dim drow As lolDataSet.tblCategorieRow
  9. strNaam = txtNaam.Text & " " & txtVoornaam.Text
  10. 'maakt de klant aan
  11.  
  12. dtrow = frmHoofd.dtslol.tblKlanten.Rows.Add
  13. dtrow.NaamSP = strNaam
  14. dtrow.Positie = txtPositie.Text
  15. dtrow.GeboortedatumSP = dtpGebsp.Text
  16.  
  17. 'berekent met de geboortedatum de leeftijd en geeft dan IntCategorie terug
  18. KlantInCategorie(dtpGebsp.Value)
  19.  
  20.  
  21. ' hier zou het programma de klanten in de juiste categorie moeten zetten, ik wou met insert werken maar ik weet niet waar ik dat hier moet zetten, alles is normaal in orde buiten dit
  22.  
  23. drow = frmHoofd.dtslol.tblCategorie.Rows.Add
  24. drow.Item("KlantNr") = bKlantNr
  25. frmHoofd.OdaVoetbalploeg.Update(drow)
  26. bKlantNr += 1
  27.  
  28. MessageBox.Show("Klant is ingeschreven", "Inschrijving", MessageBoxButtons.OK)
  29. frmHoofd.OdaKlanten.Update(dtrow)
  30. Me.Close()
  31. Catch ex As Exception
  32. MsgBox(ex.Message)
  33. End Try
Offline Stefan14 - 13/03/2008 18:41
Avatar van Stefan14 PHP gevorderde ah, een schoolopdracht dus, leuk zo'n opleiding waar je vanaf het eerste moment gelijk met een fout datamodel op pad gestuurd wordt.

helaas ben ik ook nog maar een beginneling in VB.net, dus ik kan je niet verder helpen, maar er zitten er hier een paar op het forum (waaronder titjes) die heel goed zijn hierin.
Offline Abbas - 13/03/2008 18:51
Avatar van Abbas Gouden medaille

Crew .NET
Je code ziet er al niet slecht uit, alleen moet je de toewijzing van je variabelen niet in de Try doen. Enkel zaken waar het kan misgaan zoals het connecten met een DB en dergelijke doe je in de Try. In de Catch vang je dan je fouten op en ik zou ook een Finally gebruiken. Hier gebeuren de dingen die ALTIJD worden gedaan, of er nu een fout is of niet.
Offline Maikelce - 13/03/2008 18:57
Avatar van Maikelce Lid Titjes maar dat laatste deel waar bijstaat dat het programma de klanten daar in de juiste categorie zal moeten zetten.

Dan doet hij dit:

categorieID categorienaam KlantID
1................. 60+
2.................60+.................1

Terwijl die 2de lijn er eigenlijk niet moet komen en gewoon die 1 in de lijn erboven moete komen, hoe kan ik dat het beste doen?
Offline Abbas - 13/03/2008 19:03
Avatar van Abbas Gouden medaille

Crew .NET
Heb je niet naar Stefan14 geluisterd? Je moet een CatID bij de klant zetten en niet een KlantID bij een categorie! Voorbeeld:

Categorien:
CatID CatNaam
1____ 20+
2____ 40+
3____ 60+

Klanten:
KlantID KlantDate CatID
1_____ 1/1/1940 3
2_____ 1/1/1980 1
3_____ 1/1/1960 2

Snap je?
Offline Maikelce - 13/03/2008 19:14
Avatar van Maikelce Lid
titjes schreef:
Heb je niet naar Stefan14 geluisterd? Je moet een CatID bij de klant zetten en niet een KlantID bij een categorie! Voorbeeld:

Categorien:
CatID CatNaam
1____ 20+
2____ 40+
3____ 60+

Klanten:
KlantID KlantDate CatID
1_____ 1/1/1940 3
2_____ 1/1/1980 1
3_____ 1/1/1960 2

Snap je?


Maar hoe insert je dan het categorienummer in de rij van die klant?
Offline Abbas - 13/03/2008 19:28
Avatar van Abbas Gouden medaille

Crew .NET
Op een gegeven moment bereken je al de leeftijd, aan de hand daarvan kan je kijken in welke categorie hij moet. Bijvoorbeeld:
  1. If leeftijd > 20 And leeftijd < 60 Then
  2. cat = 2
  3. 'Enz..

En die 'cat' zet je dan bij de CatID van een klant.
Offline Maikelce - 13/03/2008 19:32
Avatar van Maikelce Lid
titjes schreef:
Op een gegeven moment bereken je al de leeftijd, aan de hand daarvan kan je kijken in welke categorie hij moet. Bijvoorbeeld:
[..code..]
En die 'cat' zet je dan bij de CatID van een klant.


dat is dan gwn van bv. drow.CatID= cat.text

Maar die CatID in tblCategorie s gelinkt aan die CatID in tblKlanten eh, dus dan gaat dat toch eh? Normaal wel, maar ik wil even zekerheid
Offline Abbas - 13/03/2008 19:34
Avatar van Abbas Gouden medaille

Crew .NET
Jups! 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s