Hey, ich habe eine kleine Datenbankanwendung geschrieben, die den MySQL-Connector (C#) benutzt. Dort habe ich allerdings ein paar kleine Umsetzungsprobleme und zudem aucb bestimmt vieles, was verbesserungswürdig ist, von daher hier mal ein paar Fragen. 1. Ich habe eine einzige Klasse, die die Datenbankoperationen darstellt, also Löschen von Kunden, Hinzufügen usw., vermutlich könnte man das ganze noch besser aufteilen aber wie? 2. Ich habe in dieser einen Klasse, die übrigens statisch ist eine Verbindung, die überall genutzt wird und zudem ein paar andere. Ist es empfehlenswert eine Verbindung in der Klasse zu haben, die überall genutzt wird? Das sieht so aus: private static MySqlConnection sql_connection = new MySqlConnection(); private static MySqlCommand sql_command = new MySqlCommand(); private static MySqlDataReader sql_reader; static Database() { sql_connection.ConnectionString = Login(); sql_command.Connection = sql_connection; } Jetzt ist muss man natürlich auch immer sql_connection.Open() machen. Könnte man die Offene Verbindung auch irgendwie übergeben bzw. ist das ratsam? So sieht dann z.B eine der Methoden aus: public static bool DeleteAllData() { sql_command.CommandText = "Delete from Kunde;"; try { using (sql_connection) { sql_connection.Open(); sql_command.ExecuteNonQuery(); } } catch (MySqlException mysqlex) { // Behandlung return false; } return true; } 3. Zudem habe ich auch keine interne Repräsentation eines Kunden in meinem Projekt, sondern nur in der DB eine Tabelle einen Kunden. Brauche ich eine eigene Klasse dafür in meinem Projekt, wenn ja wie könnte diese aussehen? Ich würde mir auch wahnsinning gerne mal irgendwo fertige Projekte angucken, allerdings sind viele dieser Open-Source Projekte so gigantisch und auch so komplex das ich fast nichts verstehe. Hat hier evtl. jemand eine Empfehlung für ein kleineres Projekt, wo man sich auch mal einen guten Stil angucken kann oder eine Seite, wo es solche Projekte gibt? Diese müssen auch nicht unbedingt eine Datenbankanwendung sein. ;) Nur ein guter Stil ist mir wichtig. Danke schon einmal im voraus an alle Antwortenden.
Hi, mit welcher IDE arbeitest du? Ich arbeite zur Zeit mit VisualStudio und setze das was du beschreibst durch das "Entity Framework" um. Einfach über nugetManager hinzufügen. Damit kannst du ein Entity Model direkt aus der Datenbank kreieren lassen. D.h. es wird eine Klasse "Kunde" erzeugt mit allen Attributen die durch die Datenbank repräsentiert wird. Auch wird ein DataContext erzeugt über diesen du dann Add/Update/Delete dieser Entities vornehmen kannst. Am besten legst du für jede Entity Klasse noch eine EntityDAO (DatanaseAccessObject) Klasse an über die du dann alle Datenbank zugriffe führst --> Bessere Übersichtlichkeit als alles in eine "Database.cs" zu packen. mfg Max
Hey, ich arbeite ebenfalls mti dem Visual Studio (2012). Das gefällt mir einfach am besten. ;) Ich verstehe nicht, warum man überhaupt eine interne Repräsentation eines Kunden in einem Projekt braucht. Wieso lässt man das ganze nicht einfach in der Datenbank? Ich habe mir das Entity Framework auch mal heruntergeladen aber ich kriege dann, wenn ich ein neues ADO.NET Entity Data Model erstellen will keine MySQL Database als Auswahlmöglichkeit, sondern nur Microsoft SQL Server, Microsoft Server-Datenbankdatei und Microsoft SQL Server 4.0 Compact. Somit kann ich auch kann Model davon erstellen. Das mit dem EntityDAO (DatanaseAccessObject) verstehe ich auch noch nicht ganz. (Du meintest auch über DatabaseAccessObject oder? ;) ) Was meinst du mit für jede Entity Klasse? Wird dann nicht nur für den Kunden eine Entity erstellt? Kannst du oder jemand anders das noch einmal genauer erläutern?
Hat keiner eine Ahnung von diesem Entity Framework? Wenn jemand sonst noch einen Vorschlag hat, wäre das auch okay. Es muss ja warscheinlich auch nicht unbedingt dieses Entity Framework sein oder wird das normalerweise verwendet?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.