Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [VB_NET]Selezione combo

    Allora questo è il modo in cui carico il combo:

    codice:
            sqlp = "SELECT IDFornitore,RagSoc FROM Fornitori"
            connessione.Open()
            Dim cmd As New OleDbCommand(sqlp, conn.connessione)
            Dim read As OleDbDataReader
            read = cmd.ExecuteReader
            CBB_Fornitori.Items.Clear()
    
            Do While read.Read
                CBB_Fornitori.Items.Add(read.GetString(1))
                CBB_Fornitori.DisplayMember = read.GetInt32(0)
            Loop
            read.Close()
            connessione.Close()
    io voglio che quando seleziono una voce del combo mi venga restituito l'id dell'elemento selezionato, ma l'id del database ad esempio:

    Nome id
    pippo 1
    pluto 2

    quando seleziono l'elemento nella form del combo e seleziono pippo io voglio che mi restituisca "1". Ho provato con :
    cbb_fornitori.DisplayMember ma mi restuisce l'id dell'ultimo elemento della lista; con ...ValueMember ma non mi restituisce niente. Comunque qualsiasi aiuto è ben accetto . GRAZIE

  2. #2
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Metti i tuoi dati in una DataTable sfruttando un SqlDataAdapter così puoi sfruttare il binding automatico.
    Supponendo che dt sia da tua DataTable con i dati
    codice:
    CBB_Fornitori.DataSource = dt
    CBB_Fornitori.ValueMember = "IDFornitore"
    CBB_Fornitori.DisplayMember = "RagSoc"
    E poi leggi il valore dell'elemento selezionato dalla proprietà SelectedValue.

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  3. #3
    scusa ma mi potresti scrivere come caricarlo che non ho capito

  4. #4
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    codice:
    Dim da As New OleDbDataAdapter("SELECT IDFornitore,RagSoc FROM Fornitori", connessione)
    Dim dt As New DataTable
    da.Fill(dt)
    'Bind combo come ti ho scritto prima
    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  5. #5
    codice:
    sqlp = "SELECT IDFornitore,RagSoc FROM Fornitori"
    Dim DataAdapter As New OleDbDataAdapter(sqlp, conn.connessione)
    Dim dt As New DataTable
    DataAdapter.Fill(dt)
    
    CBB_Fornitori.DataSource = dt
            CBB_Fornitori.ValueMember = "IDFornitore"
            CBB_Fornitori.DisplayMember = "RagSoc"
    ora ho fatto cosi il combobox lo carica correttamente, ma adesso come faccio a prendermi l'id dell'elemento selezionato che è poi quello che è caricato nel db??
    Ho fatto con CBB_Fornitori.ValueMember ma mi scrive "IDFornitore"

  6. #6
    ho trovato:
    CBB_Fornitori.Value

  7. #7
    ora ho un altro problema devo caricare un altro combo nella stessa form ho usato lo stesso metodo ma mi scrive questo errore sul ValueMember:

    "Could not bind to the new display member."

    perchè?

  8. #8
    aiuto ora me lo scrive sempre io ho scritto cosi:
    codice:
     Sub CaricaForn()
            sqlp = "SELECT IDFornitore,RagSoc FROM Fornitori"
            Dim DataAdapter As New OleDbDataAdapter(sqlp, connessione)
            Dim dt As New DataTable
            CBB_Fornitori.DataSource = dt
            CBB_Fornitori.ValueMember = "IDFornitore"
            CBB_Fornitori.DisplayMember = "RagSoc"
            connessione.Close()
        End Sub
    
        Sub CaricaCli()
            sqlp = "SELECT IDCliente,Nome,Cognome FROM Clienti"
            Dim DataAdapter As New OleDbDataAdapter(sqlp, connessione)
            Dim dtC As New DataTable
            CBB_Cliente.DataSource = dtC
            CBB_Cliente.ValueMember = "IDCliente"
            CBB_Cliente.DisplayMember = "Nome"
            CBB_Cliente.DisplayMember = "Cognome"
            connessione.Close()
        End Sub
    e li richiamo:
    Call CaricaCli()
    Call CaricaForn()

    nel Page_Load perchè adesso mi scrive:

    "Could not bind to the new display member"

    aiutoooooo

  9. #9
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Non puoi cambiare l'impostazione di DisplayMember una volta che il binding è stato fatto... Se ti serve mostrare Nome + Cognome devi concatenarli a priori, a livello di query.

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  10. #10
    aiuto ora non mi carica più un combo da nessuna form ma perchè ti prego aiutami a capire e mi dà sempre questo errore che posso fare???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.