Toon posts:

[VB.net 2005] Problemen met een combobox

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een beginner in vb.net en ik probeer me m'n combobox werkend te krijgen
Normaal deed ik de combobox door de datasource via de properties toe te voegen
maar nu wil ik het via mem'n code doen omdat de rest (zoals textboxes) ook via de code wordt ingevuld.

ik heb het volgende

Visual Basic .NET: filename
1
2
3
4
5
6
7
8
9
10
11
12
13
 
    Dim objConnection As New SqlConnection("server=.\sqlexpress;uid=;pwd=;Trusted_Connection=yes;database=Helpdesk2")
    Dim objDataAdapter As New SqlDataAdapter( _
        "SELECT Call_ID, Date_Logged, Date_Closed, Problem_description, Action, Accepted_By, " & _
        "Catogorie_ID, Catogorie_Description, Call_Status_Description, Priority_Description, FirstName " & _
        "FROM Calls " & _
        "JOIN Catogorie ON Calls.Catogorie_ID = Catogorie.Catogorie_ID " & _
        "JOIN Call_status ON Calls.Call_Status_ID = Call_status.Call_Status_ID " & _
        "JOIN Priority ON Calls.Priority_ID = Priority.Priority_ID " & _
        "JOIN Employees ON Calls.EmployeeID = Employees.EmployeeID " & _
        "ORDER BY Call_ID", objConnection)
    Dim objDataSet As DataSet
    Dim objDataView As DataView



En dit is voor mem'n combobox wat ik via google gevonden heb

Visual Basic .NET: ComboBox
1
2
3
4
5
6
7
8
9
10
 

        cboCatogorie.DropDownStyle = ComboBoxStyle.DropDownList

        With cboCatogorie
            .DataSource = objDataSet.Tables("Catogorie")
            .DisplayMember = "Catogorie.Catogorie_Description"
            .ValueMember = "Catogorie.Catogorie_ID"
            .SelectedIndex = "Calls.Catogorie_ID"
        End With


Ik krijg nu de fout bij lijn 4.
Ik denk dat ik bij datasource het compleet verkeerd in vul maar ik heb verschillende combinaties geprobeerd en het schijnt allemaal niet te werken
Wat het ook misschien zou kunnen zijn dat memijn SQL query niet goed is, maar omdat me mijn text boxen wel goed ingevuld worden dacht ik dat het daar niet aan ligt.

Heeft iemand nog wat ideeën voor me?

[ Voor 0% gewijzigd door whoami op 14-01-2007 20:21 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Je krijgt nu fout ? Welke fout ? heb m'n glazen bol uitgeleend

Een paar gedachten:
- ben je wel zeker dat je DataSet een DataTable bevat die 'Categorie' heet ?

Je Display & DataMember hoef je niet te specifieren zoals Calls.VeldNaam; zowiezo zullen je columns in je datatable waarschijnlijk niet zo heten.

Probeer het eens zo:
code:
1
2
3
4
5
With cboCatogorie
            .DataSource = objDataSet.Tables(0)
            .DisplayMember = "Catogorie_Description"
            .ValueMember = "Catogorie_ID"
End With


Daarnaast zie ik ook dat je een string wilt toekennen aan de SelectedIndex property. Als je eens in de MSDN kijkt, zie je dat SelectedIndex een integer is; als je daar dus een string aan toewijst zal dat al niet compileren.

[ Voor 140% gewijzigd door whoami op 14-01-2007 20:22 ]

https://fgheysels.github.io/


Verwijderd

Je hoeft idd geen tabelnaam.kolom naam te doen bij datasets/datatables. Dat begrijpt de binder niet.

C#:
1
2
3
4
With cboCatogorie 
            .ValueMember = "Catogorie.Catogorie_ID" 
            .SelectedIndex = "Calls.Catogorie_ID" 
        End With


Bovenstaande kan nooit de bedoeling zijn. Nu impliceer je dat je 2 selectable unieke keys hebt in 1 combobox. Dat kan niet. Zoals whoami al zei de SelectedIndex is een integer en geeft alleen maar aan welke item is geselecteerd in de combobox.

Verwijderd

Topicstarter
Dat ik tabelnaam.kolom deed, is omdat het niet werkte, dus probeerde ik dat uit.

oke dat helpt al een stuk
door de volgende code ben ik nu voorbij de datasource
Visual Basic .NET:
1
            .DataSource = objDataSet.Tables(0)


Nu geeft het alleen nog een fout melding op
Visual Basic .NET:
1
            .ValueMember = "Catogorie_ID"


en ik krijg de volgende fout melding

Cannot bind to the new value member.
Parameter name: value

als ik .valuemember eruit comment, dan werkt de combobox, maar dan laat het niet alle waardes zien.
Ook dacht ik dat "Catogorie_ID" de juiste waarde zou moeten zijn.
Als ik het toevoeg via de properties dan is het wel "Catogorie_ID".
Wat ik dan invul pakt hij wel

  • pjonk
  • Registratie: November 2000
  • Laatst online: 22-11 20:39
Ik zie dat je Catogorie_ID een FK is. Dit veld komt voor in de Calls en Categorie tabellen. In je SELECT query selecteer je het veld Catogorie_ID. Het DBMS weet nu niet welke kolom van welke tabel je bedoelt (Ambigious column). Ik zou de kolom in je SELECT bijv. in Calls.Catogorie_ID veranderen, want jouw query zou gewoon een error moeten geven.

[ Voor 0% gewijzigd door pjonk op 14-01-2007 22:07 . Reden: spelling ]

It’s nice to be important but it’s more important to be nice