Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    17

    [vb.net] autocompletamento della combobox funziona male

    Ciao a tutti,

    nel mio progetto scritto in vb.net 2008 framework 3.5 popolo una combobox con i dati presenti in un dataset.
    Nella fattispecie sono numeri di telefono e sono tanti.
    Ho notato che alcuni di essi non sempre vengono caricati oppure non sono rilevati dall'autocompletamento della combox, in ogni caso io non mi accorgo che quel numero era già presente fino a quando non provo a reinserirlo.
    Qualcuno sa dirmi se visto l'elevato numero (2936) potrebbe essere un bug di vb?
    Grazie.
    Saluti


    Andrea

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    17
    Giusto
    Qui creo la datatable e vado a leggere i dati da file xml
    codice:
    ' ########## LETTURA ELENCO DATI ANAGRAFICI
            If ds.Tables("Anagrafe") Is Nothing Then
                ds.Tables.Add("Anagrafe")
                ds.Tables("Anagrafe").Columns.Add(New DataColumn("IDTelefono"))
                ds.Tables("Anagrafe").Columns.Add(New DataColumn("Cognome"))
                ds.Tables("Anagrafe").Columns.Add(New DataColumn("Nome"))
                ds.Tables("Anagrafe").Columns.Add(New DataColumn("Via"))
                ds.Tables("Anagrafe").Columns.Add(New DataColumn("NumeroCivico"))
                ds.Tables("Anagrafe").Columns.Add(New DataColumn("Paese"))
                ds.Tables("Anagrafe").PrimaryKey = New DataColumn() {ds.Tables("Anagrafe").Columns("IDTelefono")}
                Try
                    ds.Tables("Anagrafe").ReadXml(Application.StartupPath + "\Anagrafe.xml")
                Catch ex As Exception
                    MsgBox("ERRORE -> LETTURA FILE XML Anagrafe IN MyDef.gatDataAdapterAllTables" + vbCrLf + ex.Message)
                End Try
            End If
    Mentre qui vado a caricare i dati dentro la combobox

    codice:
            Try
                CmbTelefono.DataSource = ds.Tables("Anagrafe")
                CmbTelefono.DisplayMember = "IDTelefono"
                CmbTelefono.ValueMember = "IDTelefono"
                CmbTelefono.Text = ""
            Catch ex As Exception
                MsgBox("ERRORE -> Caricamento CmbTelefono IN Principale.Load" + vbCrLf + ex.Message)
                Me.Close()
            End Try
    Grazie

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non puoi utilizzare lo stesso dataset come DataSource, devi crearne uno apposito che estragga i dati non raddoppiati con una query SELECT DISTINCT

    SELECT DISTINCT IDTelefono FROM Anagrafe


  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    17
    Ma dovrei usare un altro dataset solo per evitare di avere dati raddoppiati?
    Perchè in questo caso IDTelefono è chiave primaria quindi non possono esistere doppioni.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    17
    Originariamente inviato da reset85
    Ma dovrei usare un altro dataset solo per evitare di avere dati raddoppiati?
    Perchè in questo caso IDTelefono è chiave primaria quindi non possono esistere doppioni.
    up

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da reset85
    Ma dovrei usare un altro dataset solo per evitare di avere dati raddoppiati?
    Perchè in questo caso IDTelefono è chiave primaria quindi non possono esistere doppioni.
    Questo contrasta completamente con quanto hai scritto nel primo post:

    in ogni caso io non mi accorgo che quel numero era già presente fino a quando non provo a reinserirlo.
    perchè ovviamente se la chiave primaria è IDTelefono, non possono esservi 'doppioni'.
    Per lo stesso motivo, il campo IDTelefono non può essere vuoto.

    Se si verifcano casi come sopra, i dati non sono congrui, e la gestione degli stessi non è corretta.

    Altrimenti: o non ho capito io, oppure non ti sei spiegato bene.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    17
    perchè ovviamente se la chiave primaria è IDTelefono, non possono esservi 'doppioni'.
    Per lo stesso motivo, il campo IDTelefono non può essere vuoto.
    Infatti non è né vuoto né esistono doppioni.
    Il problema penso risieda nella combobox che ogni tanto non mi autocompleta un numero che nella tabella esiste. Sono sicuro dell'esistenza del numero perchè quando vado a salvare quelle che io credo essere nuove informazioni il programma mi avverte della presenza del numero inserito.
    Cosa ne pensi?
    Grazie

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    A questo punto mi pare che i problemi sono nel caricamento, i quali possono essere risolti solo con un debug del codice.

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.