Il tuo codice di accesso ai dati dovrebbe generalmente essere simile a questo:
string sql = "SELECT * FROM Employee e INNER JOIN Clock_History c ON c.Badge = e.Badge WHERE e.Badge = @BadgeID";
using (var cn = new OracleConnection("your connection string here"))
using (var cmd = new OracleCommand(sql, cn))
{
cmd.Parameters.Add("@BadgeID", OracleDbType.Int).Value = Badge;
cn.Open();
xHoursGridView.DataSource = cmd.ExecuteReader();
xHoursGridView.DataBind();
}
Nota che questo è solo il modello generale. Ti consigliamo di modificarlo un po 'per le tue esigenze esatte. Le cose importanti da prendere da questo sono l'using
blocchi per creare ed eliminare correttamente l'oggetto di connessione e il parametro per la protezione contro l'iniezione di sql.
Per quanto riguarda la domanda di connessione, ci sono delle eccezioni ma in genere puoi utilizzare una connessione solo per un set di risultati attivo alla volta. Quindi potresti riutilizza lo stesso conn
oggetto dal tuo codice originale, ma solo dopo aver terminato completamente con esso dal comando precedente. Va anche bene aprire due connessioni se ne hai bisogno. Il migliore l'opzione, tuttavia, è combinare le query correlate in un'unica istruzione sql quando possibile.