Sto realizzando una semplice procedura per verificare se un nome dato come input è già presente nel mio Database access.
Per la precisione: inserendo "Nome" e "Cognome" all'interno degli appositi TextBox e premendo il bottone "Inserisci", viene aperta una connessione al database, e viene eseguita una query di selezione con l'istruzione "WHERE".
Devo dire che così come ho fatto funziona tutto, il mio dubbio è questo: faccio eseguire la ricerca del nome e cognome all'interno del DB tramite una classica istruzione SQL con l'opzione "WHERE", delegando quindi al linguaggio SQL il compito di ricercare nel DB...
Detto questo, quello che mi chiedo è se è necessario a questo punto inserire anche l'istruzione "WHILE ... END WHILE" per scorrere i risultati estrapolati dalla query tramite il DataReader. In pratica, che senso ha mettere il ciclo WHILE se ci ha già pensato la query SQL a scorrere tutto il DB e ad estrapolare i risultati cercati?
Naturalmente ho provato a togliere il ciclo ma mi da errore, allora mi viene il dubbio che comunque devo lasciare le cose come stanno...
Vi posto il codice, magari qualcuno sa sciogliere il dubbio e suggerirmi un metodo alternativo... o confermare che va lasciato tutto così magari!
GRAZIE A TUTTI
PS: Forse ho questi dubbi perchè in ASP per fare una cosa simile potevo usare il comando EOF e con una semplice istruzione (IF rec.EOF) capire la volo se la query SQL aveva trovato risultati oppure no, bypassando il ciclo while...
(forse ho qualche confusione io che mi avvicino adesso al .NET.. mha!)
codice:' Apre la connessione al database Dim strConnection As String Dim myConnection As New OleDbConnection Dim myCommand As New OleDbCommand Dim myReader As OleDbDataReader strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PercorsoDatabase myConnection.ConnectionString = strConnection Try myConnection.Open() Try ' Query di selezione Dim mySQLQuery As String Dim NuovoNomePaziente As String Dim NuovoCognomePaziente As String NuovoNomePaziente = tbNome.Text NuovoCognomePaziente = tbCognome.Text mySQLQuery = String.Format("SELECT NomePaziente,CognomePaziente FROM Paziente WHERE NomePaziente = '{0}' AND CognomePaziente = '{1}'", NuovoNomePaziente, NuovoCognomePaziente) ListBox1.Items.Add(mySQLQuery) ' inizializza la connessione myCommand.Connection = myConnection myCommand.CommandText = mySQLQuery myReader = myCommand.ExecuteReader() Try While myReader.Read() ListBox1.Items.Add("Nome = " & myReader.Item("NomePaziente")) ListBox1.Items.Add("Cognome = " & myReader.Item("CognomePaziente")) End While Finally myReader.Close() End Try Finally myConnection.Close() End Try Catch ex As Exception MsgBox(ex.ToString) End Try

Rispondi quotando