Hallo.
Soweit ich weiss, gibt es bei .NET zwei Möglichkeiten:
Entweder benutzt du eine SQL-Datenbank, die du dann mit
Code:
using System.Data.SqlClient;
einbinden musst und auch alle Befehle dann später z.B. SqlCommand, SclDataAdapter usw. heissen.
Oder aber du benutzt eine der anderen von .NET unterstützten Datenbanken wie Oracle, Access. Diese musst du dann mit
einbinden und entsprechend heissen die Befehle hier dann OleDbCommand etc..
Generell denke ich aber, dass es nicht möglich ist, alle Datenbanken allgemein anzusprechen, da sie sich nicht nur in ihrer jeweiligen Syntax unterscheiden (die du ja mit einem String allgemein halten kannst), sondern auch noch darin, ob es sich um einen verwalteten Datenbank-Provider handelt (SQL wird in der Literatur als der einzige verwaltete genannt), oder eben um einen nicht-verwalteten(->"OleDb").
Und dann gibt es da noch Datenbanken, die auch mit OleDb nicht ansprechbar sind, für die gibt es Odbc.
Also nochmal kurz zum mitschreiben:
- SQL läuft mit SqlClient
- MySQL läuft (bis zu einem gewissen Grad) mit SqlClient
- Access läuft mit OleDb
- Oracle läuft mit OleDb
- Bei allen anderen Datenbanken musst du die mit OleDb probieren und wenn es nicht klappt, Odbc benutzen
Fazit: Nach meinem Kenntnisstand ist es
nicht zu empfehlen, einen
"Generaldatenbankzugriff" zu implementieren.
Ich hoffe mal, ich hab dich nicht völlig vom "datenbankeln" abgeschreckt.
EDIT: Auf alles per Odbc zuzugreifen halte ich nicht für sehr performant.
Gruß, Niko