Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb.net] query di ricerca di una stringa in un data base Sql Server
Forum - C# / VB.NET - [vb.net] query di ricerca di una stringa in un data base Sql Server

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
piter123 (Normal User)
Pro


Messaggi: 141
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 17:04
Venerdì, 16/11/2012
Buongiorno ho bisogno di effettuare una ricerca di una stringa  all'interno di un database Sql Server che mi restituisca il suo ID quando la trova.
Ho già effettuato tutta la parte di connessione da vb.net a sql server e quindi mi basta il Command per eseguire tale ricerca dopo le seguenti righe di codice sotto riportate:
Tale ricerca però si deve svolgere su due colonne del database, esempio sul database ho una colonna nome e una cognome dove ad esempio alla riga (ID) 15 ho Rossi Mario e alla successiva Rossi Carlo.
Ho bisogno di sapere su quale riga (ID) si trova Rossi Mario.
Grazie

CNN.Open()
Dim CMD As New SqlCommand
CMD.Connection = CNN

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 18:26
Venerdì, 16/11/2012
Ciao.
Devi scrivere una query parametrica che filtra i valori mettendo la condizione "WHERE (NOME = @NOME) AND (COGNOME = @ COGNOME).
l'IDE VS2010 ti aiuta a scrivere, le query..


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:26
Venerdì, 16/11/2012
Utilizza una query opportuna (ovviamente aggiusta tu i nomi dei campi)

" SELECT Id,Cognome,Nome FROM Tabella WHERE Cognome='Rossi' AND Nome='Mario' "


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 141
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 18:54
Venerdì, 16/11/2012
si si, funzia alla grande, mille grazie.

Visto che ci sei, posso chiederti altra cosa :
utilizzo il seguente codice per scaricare su una textbox1 la tabella INIDIRIZZI,
a fronte della ricerca dell'ID di Rossi Mario avrei bisogno per esempio di scaricare
solo i dati con id inferiore

Dim CMD As New SqlCommand
CMD.Connection = CNN
CMD.CommandText = "SELECT ID, COGNOME, NOME FROM INDIRIZZI"
Dim DR As SqlDataReader = CMD.ExecuteReader
Do While DR.Read
TextBox1.AppendText(String.Concat(DR("ID"), "  ", DR("COGNOME"), "  ", DR("NOME") & Environment.NewLine)
Loop
CNN.Close()




PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 0:14
Sabato, 17/11/2012
Con ID inferiore ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 141
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 8:20
Sabato, 17/11/2012
si, con id inferiore, trovato l'id di rossi mario ho bisogno di scaricare i record che vanno da id 1 a id di mario rossi.

con " SELECT Id,Cognome,Nome FROM Tabella WHERE Cognome='Rossi' AND Nome='Mario' " al posto di
"SELECT ID, COGNOME, NOME FROM INDIRIZZI" scarico i dati da id rossi mario fino alla fine.

Non sò se esiste un comando del genere o se devo una volta individuato l'id di mario rossi riposizionarmi sull' id 1
ed eseguire un ciclo da id 1 fino a id rossi mario per scaricare i record, non mi sembra una soluzione tanto nobile.

Grazie

PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 141
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 8:23
Sabato, 17/11/2012
si, con id inferiore, trovato l'id di rossi mario ho bisogno di scaricare i record che vanno da id 1 a id di mario rossi.

con " SELECT Id,Cognome,Nome FROM Tabella WHERE Cognome='Rossi' AND Nome='Mario' " al posto di
"SELECT ID, COGNOME, NOME FROM INDIRIZZI" scarico i dati da id rossi mario fino alla fine.

Non sò se esiste un comando del genere o se devo una volta individuato l'id di mario rossi riposizionarmi sull' id 1
ed eseguire un ciclo da id 1 fino a id rossi mario per scaricare i record, non mi sembra una soluzione tanto nobile.

Grazie

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:43
Sabato, 17/11/2012
Esegui la select e ottieni l'ID di Mario Rossi in una variabile che chiami varID e poi esegui un'altra query con

" SELECT ID, COGNOME, NOME FROM INDIRIZZI WHERE ID < " + varID.ToString()

Ultima modifica effettuata da nessuno il 17/11/2012 alle 9:44


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 9:44
Sabato, 17/11/2012
Ciao. Uhm..
Si tratterebbe di scrivere una query con una sub query: la prima query ti restituisce l'ID che ti interessa che a sua volta diventa una variabile per la 2 query, cioè SELECT dati WHERE ID<ID_MARIO_ROSSI.
Senza complicarsi tanto la vita con sql, basta eseguire 2 query, una dopo l'altra.
Tra l'altro, il codice che hai scritto si potrebbe anche migliorare un pochino, usando i tableAdapter di ADO.NET..

EDIT: Nessuno, mi hai soffiato la risposta! :D:k::rotfl::D;)

Ultima modifica effettuata da Renny il 17/11/2012 alle 9:47


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo