Ricerca multipla

di il
23 risposte

Ricerca multipla

Salve a tutti, sono nuovo di questo sito e ho visto che il forum in generale è molto efficiente; il mio problema è il seguente:

sto facendo un programma di gestione case in VB.NET e sto facendo un form per la ricerca di eventuali appartamenti che sono salvati su file; il mio problema non è questo ma ben si la ricerca perchè la voglio impostare in questo modo, allora:

una casa a vari campi( il prezzo , la superficie la zona ecc), allora ho messo 3 textbox in cui l'utente può inserire o solo la zona , o solo il prezzo o solo la superficie , o tutti e tre, o solo due e via dicendo, insomma è libero di filtrare la ricerca nel modo che gli interessa di più, il mio problema è che non la riesco a impostare, perchè vi faccio un esempio :

se l'utente inserisce solo il prezzo e lascia vuota, ad esempio, la superficie la ricerca deve visualizzare solo le case che sono uguali nel prezzo inserito e di qualsiasi superficie(visto che non l'ha inserito); oppure se mette sia prezzo che superficie la ricerca dovrà visualizzare tutte le case che hanno uguali sia il prezzo che la superficie inserita dall'utente.

Non so se mi sono spiegato bene , solo che questo tipo di ricerca mi contorce un pò.Vi sarei grato se ci fosse qualcuno che mi potrebbe dare una mano, se non avete capito qualche punto scrivetelo e cercherò di spiegarlo in un altro modo.

Grazie mille a tutti, aspetto vostre risposte

23 Risposte

  • Re: Ricerca multipla

    Dipende da cosa stai usando per prelevare i dati dal database (query SQL, Command, LINQ) se ad esempio stai componendo una query SQL basta che costruisci la condizione WHERE con una serie di if. Posta il codiche che hai scritto così ci capiamo meglio.
  • Re: Ricerca multipla

    Sto usando Visual Basic
  • Re: Ricerca multipla

    If txt_prezzo.Text <> "" Or txt_superficie.Text <> "" Then

    'Inizia la ricerca sul file solo se l'utente ha inserito qualcosa
    '

    Seek(1, 1)
    While Not EOF(1)

    'Label5.Text = ""
    FileGet(1, buffer)
    'Label5.Text = "fatto"
    '-------------------------------------------------------------'
    'Qua mi blocco


    End While


    End If
  • Re: Ricerca multipla

    Nessuno disponibile?
  • Re: Ricerca multipla

    C'è qualcuno???
  • Re: Ricerca multipla

    Sai come leggere i dati dal file? Se tu dovessi caricarli tutti in un array sapresti come fare?
  • Re: Ricerca multipla

    Si si , leggo i dati dal file con la fileget, l'ho messo nel codice; il mio problema è dopo cioè filtrare solo i campi che l'utente ha inserito
  • Re: Ricerca multipla

    Ma dopo che hai messo i dati nel buffer sai come leggerli?
  • Re: Ricerca multipla

    Si i dati nel buffer sono già stati letti in precedenza, in un altro form, questo form è solo per la ricerca in cui i valori trovati li metterà in una listbox
  • Re: Ricerca multipla

    Intendo dire i campi prezzo, superficie ecc dove sono? Perchè mi parli di buffer? Credevo tu avessi un problema meglio definito, così mi sembra troppo vago. Se mi scrivi il pezzo di codice che ti dà problemi (dove si vede dove fai i confronti) posso aiutarti, così mi sembra che stiamo perdendo tempo.
  • Re: Ricerca multipla

    Allora riassumo un pò il tutto:

    in un primo form l'utente inserisce i vari campi(prezzo,zona ecc) in un record dello struct chiamato buffer.
    In un secondo form(questo), metto una ricerca filtrata in cui l'utente può ricercare per prezzo, per superficie o zona o tutti o solo due ecc, insomma è libero di filtrare la ricerca come meglio crede.
    IL mio problema è proprio qui cioè i dati che dovranno comparire nella listbox ovviamente si dovranno attenere a quello che l'utente ha deciso di filtrare(ad esempio ha inserito solo la zona quindi dei vari record nel file dovrò solo confrontare la zona), è qui che mi blocco:
    Il codice che ho scritto, per la ricerca è questo:

    If txt_prezzo.Text <> "" Or txt_superficie.Text <> "" Then

    'Inizia la ricerca sul file solo se l'utente ha inserito qualcosa
    '

    Seek(1, 1)
    While Not EOF(1)


    FileGet(1, buffer) 'Leggo il record dal file
    '-------------------------------------------------------------'
    'e' qui che mi blocco, cioè come devo continuare




    End While
    End If
  • Re: Ricerca multipla

    Puoi mostrare come è stato dichiarato Buffer?
  • Re: Ricerca multipla

    Public Structure abitazione

    <VBFixedString(30)> Public zona_casa As String
    Public costo_casa As Integer
    <VBFixedString(30)> Public anno_casa As String
    Public superficie_casa As Integer
    <VBFixedString(100)> Public path_foto As String
    <VBFixedString(100)> Public path_descrizione As String
    Public codice_casa As Integer
    Public flag As Boolean


    End Structure

    Public buffer As abitazione
  • Re: Ricerca multipla

    L'ho dichiarato nel modulo
Devi accedere o registrarti per scrivere nel forum
23 risposte