Quey Access ottimizzate con "Stored Procedure"

giovedì 28 settembre 2006 - 21.22

paolomanfrin Profilo | Newbie

Spesso leggo sui forum una modalità non ottimizzata di esecuzione delle query access. Invece di creare una "stored procedure" ( in access non è proprio tale ma facciamo finta di si... ) e richiamarla da codice passando solo i parametri necessari, viene scritta TUTTA la query nel codice.
La differenza è molto importante, ma voglio per ora tralasciarla.
Voglio illustrare un semplice esempio di come utilizzare le "stored procedure" in access

Database "Mio_Database" con Tabella "Tbl_Utente" con i campi "ID", "Nome_Utente", "Password".

==========================

Stored Procedure ( che non è altro che una query ) di nome Qry_Get_Password con la seguente sintassi:

SELECT [Password]
FROM Tbl_Utente
WHERE [Nome_Utente]=[@Nome_Utente];

==========================

Ora, all'interno del codice ( Uso C# ) la sintassi sarà la seguente:

private void registrazione_db()
{
OleDbConnection connessione_oledb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\App_Data\\Mio_Database.mdb;");
OleDbCommand comando_oledb = new OleDbCommand();


comando_oledb.Connection = connessione_oledb;
comando_oledb.CommandType = CommandType.StoredProcedure;
comando_oledb.CommandText = "Qry_Get_Password";

comando_oledb.Parameters.Add("@Nome_Utente", OleDbType.VarChar);
comando_oledb.Parameters["@Nome_Utente"].Value = TextBox_UserID.Text; // Recupero il valore da cercare da una Textbox

OleDbDataReader lettore_oledb;
connessione_oledb.Open();
lettore_oledb = comando_oledb.ExecuteReader();
while (lettore_oledb.Read())
{
TextBox_Codice_Registrazione.Text = lettore_oledb[0].ToString(); // Questo ciclo è da rivedere, altrimenti memorizza solo l'ultima password
}
connessione_oledb.Close();
}


Spero che queste informazioni siano di aiuto.

Ciao a tutti, Paolo Manfrin
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5