Twój kod dostępu do danych powinien ogólnie wyglądać tak:
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();
}
Zauważ, że to tylko ogólny szablon. Będziesz chciał dostosować go do swoich potrzeb. Ważne rzeczy, które należy z tego wyciągnąć, to using
bloki do prawidłowego tworzenia i usuwania obiektu połączenia oraz parametru chroniącego przed wstrzyknięciem sql.
Jeśli chodzi o pytanie o połączenie, istnieją wyjątki, ale zazwyczaj można użyć połączenia tylko dla jednego aktywnego zestawu wyników na raz. Więc możesz ponownie użyj tego samego conn
obiekt z oryginalnego kodu, ale dopiero po całkowitym zakończeniu z poprzedniego polecenia. Można również otworzyć dwa połączenia, jeśli ich potrzebujesz. najlepsze Opcją jest jednak łączenie powiązanych zapytań w pojedynczą instrukcję sql, jeśli to możliwe.