Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB.NET] Ricerca di una voce in DataGrid

    Gent.mi,
    questa volta gradirei gentilmente un Vostro gradito aiuto per risolvere il seguente problema:
    in un DataGridView, contiene 4 colonne: Nome, Cognome, Città e Via.
    Gradirei effettuare una ricerca dei dati sulla prima colonna (Nome) tramite una TextBox avendo la possibilità di nascondere le voci non interessate.
    Il DataGrid, viene popolato tramite un button che legge i dati precedentemente salvati sul desktop con estensione ".TXT".
    Inserito nella TextBox una lettera di una voce, con il seguente codice riesco ad evidenziare tutta la riga.

    [CODEPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim righe As Integer = 0
    Dim colonne As Integer = 0
    righe = Me.DataGridView1.RowCount
    colonne = Me.DataGridView1.ColumnCount
    Dim IndiceRighe As Integer = 0
    Dim IndiceColonne As Integer = 0
    For Each Riga As DataGridViewRow In DataGridView1.Rows
    If String.IsNullOrEmpty(Riga.Cells(0).Value) = False Or String.IsNullOrEmpty(Riga.Cells(1).Value) = False _
    Or String.IsNullOrEmpty(Riga.Cells(2).Value) = False Or String.IsNullOrEmpty(Riga.Cells(3).Value) = False Then
    Dim stringa As String = Riga.Cells(0).Value.ToString
    If stringa.IndexOf(TextBox1.Text) = 0 Then
    DataGridView1(0, Riga.Index).Style.BackColor = Color.Aquamarine
    DataGridView1(1, Riga.Index).Style.BackColor = Color.Aquamarine
    DataGridView1(2, Riga.Index).Style.BackColor = Color.Aquamarine
    DataGridView1(3, Riga.Index).Style.BackColor = Color.Aquamarine
    End If
    End If
    Next
    End Sub
    Ho inserito il codice con un risultato negativo:
    ' Dim SearchQuery As String = "SELECT * From Users WHERE CONCAT(fname, lname, age) like '%" & TextBox1.Text & "%'"][/CODE]

    Fiducioso di una gradita, saluto.
    Domenico.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,293
    Pacifico ... sei su una strada sbagliata ...

    Per fare qualche esperimento (insomma un po' per "giocare" con il codice) va bene lavorare con i file .txt e scrivere quel tipo di codice.

    Ma se vuoi fare qualcosa di funzionale (specialmente con ricerche) allora devi utilizzare un DB (magari un file MDB di Access) e interfacciarti con questo file con ADO.NET ed effettuare le ricerche con SQL (SELECT ...). E ovviamente prima devi studiare il codice relativo e il linguaggio SQL anche perché vedo che vorresti usare una SELECT un po' a sproposito ...


    P.S. Ti sei accorto che il codice che hai postato non è inserito correttamente tra tag CODE ? Ti era già successo ma non lo hai notato ... fai attenzione ...
    Ultima modifica di oregon; 20-10-2019 a 14:06
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,908
    Domenico, è abbastanza evidente che tu stai tentando di programmare senza studiare, non puoi fare copia incolla a caso di frammenti di codice, nel post precedente volevi utilizzare il binding su un file di testo, ora una query sempre su file di testo, ti occorre un bel libro.

  4. #4
    Gent.mo Oregon,
    ringrazio della cortesia e disponibilità. Ho sempre usato excel.
    Cercherò di imparare SQL.
    Uso Visual Studio da poco trovandolo interessante realizzando alcuni programmi funzionanti tra il quale quest'ultimo che ho completato e mancante solo della ricerca.
    E' la seconda volta che invio il codice sbagliando non so dove invio il codice cliccaando sul cancelletto e copiando il codice al centro dei due CODE:
    [code codice code].
    Approfitto per chiedere:
    con il codice ho ridimensionato le celle e non riesco a ridimensionare il DataGrid in base all'ultima cella è possibile?
    codice:
    riporto il codice del ridimensionamento:
            DataGridView1.Columns(0).Width = 50
            DataGridView1.Columns(1).Width = 60
            
    DataGridView1.Columns(0).AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    DataGridView1.Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader
    Mi scuso, sono un principiante. saluto.
    Domenico.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,293
    Quote Originariamente inviata da Pacifico437 Visualizza il messaggio
    Gent.mo Oregon,
    Nei forum si usa un linguaggio più "confidenziale" ... non stai scrivendo delle lettere al Primo Ministro ...

    Puoi usare tranquillamente un

    Ciao Oregon ...

    Cercherò di imparare SQL.
    Non è solo SQL ma tutto quello che ci vuole a "contorno" ... non è banale e ci vorrà un bel po' di tempo ...

    Uso Visual Studio da poco
    Visual Studio è solo un IDE (uno strumento utile a scrivere, compilare e controllare codice in maniera semplice) ma quello che ancora ti sfugge è che tu usi Visual Basic.NET

    Quello che devi dire nei tuoi post è che usi VB.NET non Visual Studio (con il quale puoi usare tantissimi altri linguaggi).

    [code codice code].
    La parentesi quadra chiusa del primo CODE manca (anzi è alla fine del codice, in posizione sbagliata ...)
    Fai attenzione ... guarda bene il tuo messaggio ...

    Approfitto per chiedere:
    Nei forum non si mischiano gli argomenti nello stesso thread ...

    in base all'ultima cella
    Che vuol dire?

    Mi scuso, sono un principiante.
    Non devi scusarti se sei un principiante. Ma non devi pretendere di poter fare quello che un principiante non può ancora fare se non studia. E gli argomenti che devi studiare sono tanti e non sono semplici. Non puoi pensare di programmare con spezzoni di codice copia-incolla perché, ad un certo punto, non potrai più farlo per la loro complessità.

    Utilizza Internet per studiare (soprattutto dalla documentazione VB.NET abbondante ...) anche in inglese ... se non conosci l'inglese minimo per leggere i documenti, beh, studia anche quello perché indispensabile.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,908
    Quote Originariamente inviata da Pacifico437 Visualizza il messaggio
    E' la seconda volta che invio il codice sbagliando non so dove invio il codice cliccaando sul cancelletto e copiando il codice al centro dei due CODE:
    [code codice code].
    è molto più semplice incollare il codice, selezionarlo tutto e cliccare sul pulsante #
    Tornando all'argomento iniziale, puoi anche fare una ricerca sulla DGV, ma devi fare un ciclo su tutte le righe per individuare se nella colonna desiderata c'è una cella col contenuto desiderato, una cosa del genere
    codice:
           For i As Integer = 0 To numrighe
                If DGV.Rows(i).Cells(0).Value = TextBox1.Text Then
                    DGV.CurrentCell = DGV.Rows(i).Cells(0)
                    MessageBox.Show("Trovato " + DGV.Rows(i).Cells(0).Value) 
                End If
            Next
    ovviamente in presenza di molte righe questa soluzione non è efficiente come una query su un database
    Ultima modifica di patel; 20-10-2019 a 19:06

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 © 2019 vBulletin Solutions, Inc. All rights reserved.