piter123 (Normal User)
Pro
Messaggi: 145
Iscritto: 21/05/2008
|
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
|
|
Renny (Normal User)
Expert
Messaggi: 231
Iscritto: 30/07/2011
|
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..
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
piter123 (Normal User)
Pro
Messaggi: 145
Iscritto: 21/05/2008
|
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()
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Con ID inferiore ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
piter123 (Normal User)
Pro
Messaggi: 145
Iscritto: 21/05/2008
|
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
|
|
piter123 (Normal User)
Pro
Messaggi: 145
Iscritto: 21/05/2008
|
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
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Renny (Normal User)
Expert
Messaggi: 231
Iscritto: 30/07/2011
|
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!
Ultima modifica effettuata da Renny il 17/11/2012 alle 9:47 |
|