Autor Beitrag
joshua9
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Fr 30.09.11 11:08 
Hallo
ich habe folgende Frage:
Die Verbindung zwischen C# und meiner Mysql Datenbank mache ich wie folgt:
ausblenden C#-Quelltext
1:
2:
static string connection = Properties.Setting.Default.ConnectionString;
MySqlconnection myconn = new MySqlConnection(connString);

(ConnectionString habe ich im app.config definiert
dann kann ich mit myconn.open etc. die Befehle ausführen.

diese Definition mache ich bei jedem Formular neu.

Meine Frage, wie kann ich das einmal definieren und dann für alle weiteren Formulare resp.
File.cs brauchen ?

Vielen Dank für die Hilfe
Joshua

Moderiert von user profile iconTh69: Color-Tags durch C#-Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 30.09.11 11:30 
Zitat:
Meine Frage, wie kann ich das einmal definieren und dann für alle weiteren Formulare resp.
File.cs brauchen ?


In dem du die Connection nie auf einer Form verwendest sondern in einer zentralen Datenschicht/Datenmodell die das macht und die Daten über eine wohldefinierte Schnittstelle an ihre Nutzer (z.B. deine Forms liefert. Richtig unterwegs bist du wenn deine Form nicht weiß das du mySQL verwendest.

Andererseits solltest du eine Connection eh nicht wiederverwenden oder ewig lange offen halten. Das klassische Muster ist eigentlich so spät wie möglich öffnen und so früh wie möglich wieder schließen. Bei der nächsten Operation dann wieder eine neues Connection Object erzeugen und benutzen.
joshua9 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Fr 30.09.11 11:48 
Hallo Ralf

Vielen Dank für die Antwort, kannst du mir das mit der Datenschicht/Datenmodell genauer erklären

Gruss Joshua
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 30.09.11 12:18 
Da gibt es (noch) nicht viel zu erklären. Da einzige das ich weiß ist das du MySqlConnection verwendest aber zum Beispiel nicht welche Klassen zum halten der Daten du verwendest.
In einem simplen Fall wo du mit untypisierten DataTables arbeitest kann das zum Beispiel (nur Oberfläche) einfach so aussehen.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
public class MeinLieberDataAdapter : IMeinLieberDataAdapter
{
    public MeinLieberDataAdapter(string connectionstring)
    {}

    public DataTable GetXYZDaten(int parameter1, string parameter2)
    {}

    public SaveXYZDaten(DataTable daten)
    {}
}


Du siehst keinen speziellen Abhängigkeiten in der Schnittstelle und deine Formen können Daten abrufen, ändern, speichern etc. ohne näher zu Wissen wo die herkommen. Das brauchst du nur einmal in dieser Klasse/Klassen lösen.
joshua9 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Fr 30.09.11 13:52 
Hallo Ralph

Vielen Dank für die Antwort
ich werde das versuchen
Gruss Joshua