Witam.
Piszę w C# aplikację która ma obsługiwać połączenie z bazą danych i napotkałem następujący problem. Napisałem metodę o nazwie Connect która przyjmuje nazwę użytkownika i hasło jako parametry a nastepnie łączy sie z bazą danych. Oto kod:
private MySqlConnection conn;
// ...
private void Connect(string u, string p)
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
string connectstring = String.Format("Server=127.0.0.1; Port=3306; User ID={0}; Password={1};", u, p);
try
{
conn = new MySqlConnection(connectstring);
conn.Open();
}
catch (MySqlException ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
Chciałbym jednak aby aplikacja obługiwała różne bazy danych, nie tylko MySQL. Np. do połączenia z bazą SQL Server potrzebny byłby nastepujący kod:
private SqlConnection conn;
// ...
private void Connect(string u, string p)
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
string connectstring = String.Format("Server=127.0.0.1; Port=1433; User ID={0}; Password={1};", u, p);
try
{
conn = new SqlConnection(connectstring);
conn.Open();
}
catch (SqlException ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
Jak widać powyższe kody różnią sie tylko typem obiektu "conn". I stąd moje pytanie - czy da się to jakoś sprowadzić do jednej metody? Chodzi o to aby nie powtarzać kodu i nie pisać osobnych metod obslugujących rózne typy baz danych. Jestem początkujący dlatego proszę o podrzucenie mi jakiegos pomyslu :) Z góry dziekuję.