Come recuperare i dati da un database SQL Server in C#?
Ho una tabella di database con 3 colonne firstname
, Lastname
e age
. Nella mia applicazione C# Windows ho 3 textbox chiamate textbox1
... Ho fatto la mia connettività al mio SQL Server usando questo codice:
SqlConnection con = new SqlConnection("Data Source = .;
Initial Catalog = domain;
Integrated Security = True");
con.Open();
SqlCommand cmd = new SqlCommand("Select * from tablename", con);
Vorrei ottenere dei valori dal mio database; se do un valore nella textbox1
deve corrispondere ai valori nel database e recuperare altri dettagli nelle textbox corrispondenti.
Ho provato questo metodo ma non funziona:
cmd.CommandText = "select * from tablename where firstname = '" + textBox1.Text + "' ";
Come posso fare per recuperare tutti gli altri valori nelle caselle di testo?
33
3
Poche cose da notare qui: Ho usato una query parametrizzata, che rende il tuo codice più sicuro. Il modo in cui stai facendo la dichiarazione di selezione con la parte
"where x = "+ Textbox.Text +""
ti apre a SQL injection.Ho cambiato questo in:
Quindi, ciò che questo blocco di codice farà è:
Eseguire un'istruzione SQL contro il vostro database, per vedere se ci sono nomi corrispondenti a quello che avete fornito. Se è così, quella persona sarà memorizzata in un oggetto Person (vedi sotto nella mia risposta per la classe). Se non c'è corrispondenza, le proprietà dell'oggetto Person saranno
null
.Ovviamente non so esattamente cosa stai cercando di fare, quindi ci sono alcune cose a cui prestare attenzione: Quando ci sono più di 1 persona con un nome corrispondente, solo l'ultima verrà salvata e restituita. Se vuoi essere in grado di memorizzare questi dati, puoi aggiungerli ad una
List
.Person per renderla più pulita:
Ora per chiamare il metodo:
Potete quindi riempire le vostre caselle di testo con i valori provenienti dall'oggetto Person in questo modo:
creare una classe chiamata DbManager:
poi fate doppio clic sul pulsante retrieve (es. btnretrieve) sul vostro modulo e inserite il seguente codice:
Per recuperare i dati dal database: