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

    [VB 2010 Winform] Query di select per ricerca in DB

    Sto implementando una Windows Form di ricerca in un Database. Stavo creando una query SQL che mi permettesse di poter cercare per nome... ma a quanto pare il costrutto "LIKE" con le percentuali non gusta tanto a Visual Studio:



    Se metto gli apici mi dà errore... come si può risolvere?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  2. #2
    Usando i parametri non devi mettere gli apici, ci pensa ADO.NET a scriverli. Riguardo al simbolo %, credo sia opportuno aggiungerlo al testo contenuto nel parametro e non dentro la query:
    codice:
    SELECT ... FROM ... WHERE (...) AND (video.titolo LIKE @nome)
    Chi non cerca trova.

  3. #3
    Originariamente inviato da tas
    Usando i parametri non devi mettere gli apici, ci pensa ADO.NET a scriverli. Riguardo al simbolo %, credo sia opportuno aggiungerlo al testo contenuto nel parametro e non dentro la query:
    codice:
    SELECT ... FROM ... WHERE (...) AND (video.titolo LIKE @nome)
    Che stupido, non ci avevo pensato ad aggiungerli al di fuori della query!

    Grazie mille!

    Un'ultima domanda, o meglio un consiglio di possibile realizzazione:

    Siccome la form di ricerca ha una serie di campi, alcuni dei quali non obbligatori (esempio: ricerca per solo nome, solo cognome, nome e cognome), dovrei realizzare una query in ADO.NET per ogni combinazione? oppure esiste un sistema più professionale?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  4. #4
    Potresti spezzettare la creazione della clausola WHERE, una roba tipo questa:
    codice:
    Dim where As String
    Dim cmd As New SqlCommand
    
    If campo1 <> "" Then
        If where <> "" Then where &= " AND "
        where &= "(campo1 LIKE @campo1)"
        cmd.Parameters.Add("@campo1").Value = campo1
    End If
    
    If campo2 <> "" Then
        If where <> "" Then where &= " AND "
        where &= "(campo2 = @campo2)"
        cmd.Parameters.Add("@campo2").Value = campo2
    End If
    
    ...
    
    If where <> "" Then where = "WHERE " & where
    sql = "SELECT ... FROM ... " & where
    
    cmd.CommandText = sql
    P.S. puoi cambiare il titolo dell'altra discussione?
    Chi non cerca trova.

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.