Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - C# Zugriff auf Firebird


Carla - Mi 16.07.08 13:39
Titel: C# Zugriff auf Firebird
Hallo,

kennt wer ein gutes Tutorial, wo der Zugriff auf die Firebird - Datenbank unter Net beschrieben ist?

Insbesondere komme ich mit dem DDEX Provider nicht so richtig klar.
(Der scheint aber auch älter zu sein?)

Gruß
Carla


JüTho - Mi 16.07.08 13:54

Hallo Carla,

schön wär's - ich kenne auch nichts Passendes. Auch über die Firebird-Homepage [http://www.firebirdsql.org/index.php] gibt es nicht vieles.

Der DDEX-Provider ist in der Tat gewöhnungsbedürftig, wie auch die Diskussionen unter firebird-net-provider@lists.sourceforge.net zeigen. Glücklicherweise wird er nur benötigt, um innerhalb von Visual Studio Möglichkeiten dieser IDE auszunutzen. Wenn man darauf verzichten kann und will, geht es auch ohne.

Nach meiner Erfahrung kann ich als Einführung das OpenBook Visual C# [http://www.galileocomputing.de/openbook/visual_csharp/] Kap.25 ff. empfehlen. Wenn Du anstelle der Sql-Klassen die jeweiligen Fb-Klassen verwendest, kannst Du (fast) alles direkt auf Firebird übertragen.

Der Grundsatz eines jeden DB-Zugriffs sollte folgende Struktur enthalten, bei der die DbConnection in einem using-Block eingebunden ist:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
string connString = "...";
string cmdString = "...";
int id = 1744;
using(DbConnection conn = new DbConnection(connString)) {
   DbCommand cmd = new DbCommand(conn, cmdString);
   //  unbedingt Parameter verwenden:
   cmd.Parameters.AddWithValue("@param1", id);
   conn.Open();
   DbDataReader reader = cmd.ExecuteReader();
   //  oder ExecuteNonQuery oder Execute oder mit DbDataAdapter.Fill arbeiten
   while(reader.Read()) {
      //  übernimm die Daten
   }
   //  conn.Close und reader.Close können wegen des using-Blocks entfallen
}


Ich hoffe, Du kommst damit etwas weiter. Jürgen


Carla - Mi 16.07.08 14:06

user profile iconJüTho hat folgendes geschrieben:
Hallo Carla,

schön wär's - ich kenne auch nichts Passendes. Auch über die Firebird-Homepage [http://www.firebirdsql.org/index.php] gibt es nicht vieles.

Ich hoffe, Du kommst damit etwas weiter. Jürgen


Erst mal danke.
Firebird möchten wir verwenden, da wir damit bereits unter Delphi gearbeitet haben und da war die
Anbindung ja wirklich gut.
Auf die Möglichkeit den Zugriff innerhalb der VS2008 IDE zu realisieren, möchten wir eigentlich nicht verzichten.

Eine Alternative ist noch auf den MS-SQL Server (express) auszuweichen, da dieser besser dokumentiert und
wohl auch besser eingebunden ist.

Gruß
Carla


Christian S. - Mi 16.07.08 14:17

user profile iconCarla hat folgendes geschrieben:
Eine Alternative ist noch auf den MS-SQL Server (express) auszuweichen, da dieser besser dokumentiert und
wohl auch besser eingebunden ist.
Nicht zu vergessen, dass man mit dem SQL-Server auch LINQ to SQL verwenden kann, was ich wirklich sehr schick finde :-)


Carla - Mi 16.07.08 15:36

user profile iconChristian S. hat folgendes geschrieben:
Nicht zu vergessen, dass man mit dem SQL-Server auch LINQ to SQL verwenden kann, was ich wirklich sehr schick finde :-)


Heist daß, das LINQ mit Firebird nicht geht?
Das wäre ja fast ein Todschlagargument?

Gruß
Carla


Christian S. - Mi 16.07.08 18:26

user profile iconCarla hat folgendes geschrieben:
Heist daß, das LINQ mit Firebird nicht geht?

Ich würde mich in Sachen Datenbank eher als Anfänger betrachten, Du solltest Dich also dahingehend nochmal anderswo erkundigen. Aber meines Wissens geht nur LINQ to DataSet aber nicht LINQ to SQL. Es sei denn, irgendwer hat da einen entsprechenden Provider geschrieben.

user profile iconCarla hat folgendes geschrieben:
Das wäre ja fast ein Todschlagargument?

Das kommt auf Deine Anforderungen an ;-)


Kha - Mi 16.07.08 18:46

Um die ALT.Net-Flagge hochzuhalten :mrgreen: :
NHibernate unterstützt schon lange Firebird und war wahrscheinlich selbst damals schon dem heutigen Entity Framework überlegen (das gerade arg [http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence/] durch den Kakao gezogen wird). Not Invented Here, können da einige nur kopfschüttelnd kommentieren...


Carla - Do 17.07.08 08:18

Für alle die das gleiche Problem haben, hier ein Link http://codemuch.com/node/3
mit einer kleinen Anleitung.

Gruß Carla