Autor |
Beitrag |
HoPPeL
      
Beiträge: 51
|
Verfasst: Fr 14.10.11 09:37
Hi,
kann mir jemand ein gutes Tutorial oder ähnliches empfehlen, wo einfach erklärt wird, wie ich mein Programm mit ner kleinen Datenbank hinterlegen kann. Also kein SQL oder sowas. Habe leider nix passendes gefunden bis jetzt. Wichtig wäre auch eine gute Beschreibung, wie die daten manipuliert, ausgegeben werden können.
mfg
|
|
mats74
      
Beiträge: 189
Erhaltene Danke: 26
Win 10
VS 2017/19, C++, C#
|
Verfasst: Fr 14.10.11 09:57
Hallo HoPPeL
Ich weiss nicht genau, was Du mit einer "kleinen" Datenbank meinst.
Die Verbindungsstrings von einem Programm zu einem Datenbanktyp findest du hier.
Mit dieser Connection String Reference kannst Du die üblichen DB's ansprechen.
Ansonsten müsstest Du dich ein Bisschen genauer ausdrücken (DB-Typ etc.).
_________________ Gruss
mats74
|
|
HoPPeL 
      
Beiträge: 51
|
Verfasst: Fr 14.10.11 10:04
Habe gehofft, dass sich einfache Datenbanken über so ein dataset.xsd erstellen ließen?
|
|
Oppi35
      
Beiträge: 95
Erhaltene Danke: 3
|
Verfasst: Fr 14.10.11 10:33
Schau Dir mal bitte das folg. Buch ab Kapitel 20 an:
openbook.galileocomp.../visual_csharp_2010/
Eine einfache Möglichkeit, Daten in einer Datenbank zu verwalten, ist der SQL-Server Compact. Die Daten werden hier in einer Datei gespeichert (.sdf). Für einfache Zwecke optimal.
Für einfache Zwecke bedeutet:
Du kannst Tabellen darin verwalten, aber z.B. keine Views oder Stored Procedures etc. speichern, wie Du es in einem richtigen SQL-Server kannst. Eine solche Datenbank kannst Du mit Visual Studio 2010 Express einfach anlegen über:
Extras-> Mit Datenbank verbinden
|
|
mats74
      
Beiträge: 189
Erhaltene Danke: 26
Win 10
VS 2017/19, C++, C#
|
Verfasst: Fr 14.10.11 10:39
Hallo HoPPeL
Eine Möglichkeit zu einem flexiblen Datenspeicher zu kommen ist sicherlich die Verwendung von XML-Dateien.
Du lädst das Dataset aus der XML-Datei und speicherst die manipulierten Daten wieder in die XML-Datei zurück.
Natürlich mit all seinen Vor- und Nachteilen.
_________________ Gruss
mats74
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 14.10.11 10:50
Definiere 'einfach' oder 'klein' in Bezug auf deine Daten. Wenn wir eine Vorstellungen haben was für Daten (insbesondere deren Struktur) du persistieren willst lässt sich auch eine entsprechende Methode vorschlagen.
|
|
HoPPeL 
      
Beiträge: 51
|
Verfasst: Fr 14.10.11 11:05
naja handelt sich um einfache Daten wie ymin, xmax oder ob eine cbox makiert war oder nicht.
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 14.10.11 11:16
Das letztere hört sich mehr nach Anwendungseinstellungen als nach Daten (im klassischen Sinn) an. Dafür könnte/sollte man dann auch die ApplicationSettings verwenden.
ymin, xmax ist jetzt ein bißchen arg elementar. In einem OO System brauchen wir wohl hier über nichts kleineres als Klassen nachdenken;) Was ich wissen wollte war mehr was für eine Struktur von Daten du hast insbesondere wie du die im Speicher darstellst also z.B als simple Liste(n), als Tabelle(n), als einen Graph von Klassen etc.
|
|
HoPPeL 
      
Beiträge: 51
|
Verfasst: Fr 14.10.11 11:23
Ah okay
Naja gespeichert werden sollen Tabellen, die auch über relationen miteinander verbunden werden sollen.
Bis jetzt werden Daten in selbst angelegenten Strukturen gespeichert.
Aber das speichern in diesen Datasets schien einfachc und unkompliziert, weswegen ich mich darüber informieren wollte
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 14.10.11 11:32
Zitat: | Bis jetzt werden Daten in selbst angelegenten Strukturen gespeichert. |
Also einfach in einer simplen Klasse beziehungsweise einem Verbund von simplen Klassen (Mit simpel meine ich keine Datasets/DataTables oder ähnliches)? Dann kannst du diese einfach per XMLSerialiser auf die Platte serialisieren und wieder deserialisieren.
|
|
mats74
      
Beiträge: 189
Erhaltene Danke: 26
Win 10
VS 2017/19, C++, C#
|
Verfasst: Fr 14.10.11 11:45
Hallo Ralf
Deine Lösung finde ich tip top.
Dies ist sicher eine gute und flexible Variante für seine Speicherproblematik zu lösen.
_________________ Gruss
mats74
|
|
HoPPeL 
      
Beiträge: 51
|
Verfasst: Fr 14.10.11 12:01
also nochmal für mich laien:
lieber die finger von den dataset.xsd und lieber per XMLSerialiser arbeiten?
mfg
|
|
Th69
      

Beiträge: 4798
Erhaltene Danke: 1059
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Fr 14.10.11 12:05
Hallo,
um trotzdem auf die Ursprungsfrage zurückzukommen.
Für den MS SQL Server (Express) gibt es ein Tool namens XSD2DB
Und um die Zugriffsfunktionen für Linq-to-SQL auf die DB als Code zu erzeugen, gibt es das Tool SqlMetal (welches unter "Microsoft SDK\Windows" zu finden ist).
Und es gibt sogar ein GUI-Tool hierfür: SqlMetalBuilder
P.S. Und selbst für die SQL Server Compact Edition gibt es einen Trick, um Linq-to-SQL damit zu nutzen: code-inside.de/blog/...inq-to-sql-verwenden
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 14.10.11 12:15
Zitat: | lieber die finger von den dataset.xsd und lieber per XMLSerialiser arbeiten? |
Das wäre zu einfach. Wenn du im Speicher bereits ein Dataset verwendest dann würde ich einfach ReadXml/WriteXml verwenden wenn du das Dataset ohne Datenbank benutzen willst. Wenn man im Speicher schon eine Klassenstruktur hat würde ich eher einen der Serializer nehmen (eben z.b den XMLSerializer oder einen für JSON oder Binär oder oder ...). Kommt aber auch drauf an welche 'Features' du brauchst. Bei einem Serializer bekommst du sozusagen einfach einen Snapshot. Am Dataset würde, wenn man das will, würde noch der Bearbeitungszustand hängen. Wirklich dumm wäre nur wenn man im Speicher irgendeine Klassenstruktur hat und die nur um die mal schnell lokal irgendwo abzulegen in eine Dataset überführt um das dann zu serialisieren. Und letztlich ist es auch nicht wirklich schwerer eine embedded Datenbank dafür zu verwenden auch wenn man dann mit SQL zu tun hat. Wie z.B. den erwähnten SqlServer Compact. Wenn SQL stört kann immer noch einen der gängigen Objectrelationen Mapper dazwischen schalten und verwenden.
|
|