C# - Lokale Datenbank
#1
geschrieben 24. Februar 2008 - 17:47
da ich in der Ausbildung gerade mit C# arbeite und auch im privaten schonmal damit rumhantiert hatte, wollte ich ein kleines Projekt in C# realisieren.
Ich möchte eine MP3 Datenbank schreiben wo man einen Ordner angibt und aus allen MP'3 die Infos gespeichert werden, um z.B. schnell gezielte Dateien zu finden.
Zum Speichern der Daten wollte ich eine Datenbank verwenden, da bei MP3 Ordnern schnell tausende oder hunderttausende Files vorhanden sind.
Da ich es für umständlich halte auf MySql zu setzen (dann müsste sich ja jeder User erst den Server installieren) bin ich im VS auf das Element Lokale Datenbank gestossen.
Dies scheint genau auf mein Problem zuzutreffen, denn ich habe damit eine Datenbank ohne dass jeder erst einen Server installieren muss.
Ich wollte jetzt mal nachfragen, ob dies für mein Szenario zu gebrauchen ist und ob ihr mir vllt 1-2 Links geben könntet wie ich diese Datenbank in mein Projekt einbeziehe und wie ich darauf zugriefe.
greetz skelle
Anzeige
#2 _MagicAndre1981_
geschrieben 25. Februar 2008 - 08:52
#3
geschrieben 25. Februar 2008 - 09:13
lg Martin
#4
geschrieben 25. Februar 2008 - 10:29
Zitat (Mindhunter2202: 25.02.2008, 09:13)
lg Martin
Ich persönlich würde eher zu SQLite raten, oder im schlimmsten Fall lieber List<T> und XML-Dateien nutzen! Diese sind nämlich einfacher auf andere Plattformen zu portieren. Falls wir es irgendwann noch erleben dürfen und das .NET-Framework unter Linux oder Unix benutzen zu dürfen.
Vielleicht überrascht uns MS ja mit seiner neuen Offenheit mit diesem kleinen Geschenk. Schlecht fände ich es nicht!
Wie du eine solche Access-DB in dein Projekt einbindest findest du im Galileo Openbook!
http://www.galileocomputing.de/openbook/vi...0.htm#Xxx999338
Ich hatte vorhin schonmal den Beitrag geschrieben, aber durch einen Internet-Ausfall ist der ganze Quatsch hier nicht angekommen
#5 _MagicAndre1981_
geschrieben 25. Februar 2008 - 10:31
Entweder SQLite oder auch Firebird embedded sind eine bessere Wahl.
#6
geschrieben 25. Februar 2008 - 10:44
Zitat (MagicAndre1981: 25.02.2008, 10:31)
Entweder SQLite oder auch Firebird embedded sind eine bessere Wahl.
Dann hättest du sehen müssen was mir ein Dozent beibringen wollte. Den haben wir zum Glück nicht mehr bekommen. Sonst würden wir statt mit MySQL oder MSSQL jetzt schön mit Access-DBs rumdoktern
Ich persönlich würde vor einer Access-DB lieber auf Listen zurück greifen und das ganze dann als XML-Datei Serialisieren bzw. Deserialisieren. Ist einfach und für dein Projekt sicherlich ausreichend sofern du keine mehrere MB große XML-Datei erstellst. Da dauert das Serialisieren und Deserialisieren doch ein kleines Momentchen!
#7
geschrieben 25. Februar 2008 - 10:56
Für Kleinkram kann man auch XML basierende Datenbanken nutzen, nutze ich bei meinem STI Projekt auch. Mit VisualStudio 2008 hat MS nun auch die SQL Compact Edition mit eingeführt, die ist genau für so etwas gedacht, für kleinere lokale Datenbanken.
#8 _MagicAndre1981_
geschrieben 25. Februar 2008 - 10:59
#9
geschrieben 25. Februar 2008 - 11:07
#10
geschrieben 26. Februar 2008 - 10:33
Von XML würd ich aus 2 Gründen die Finger lassen:
1. Keine Indizierung von Feldern (es soll ja nach allem Möglichen gesucht werden können) Datenbank ist mehr als nur eine x-beliebige Haltung von Daten.
2. Die Datenmenge (mehrere 1000e Einträge). Da wären ja Excel Listen noch besser und performanter als XML.
DB4O ist mir gerade auch noch eingefallen. Ich hab mal angefangen damit herumzuspielen...
Da es sich hierbei nicht um ein RDBMS sondern um ein ODBMS System handelt, ist es zwar etwas langsamer und zum erlernen von "klassischen" Datenbankmodellen nicht wirklich geeignet. Allerdings kann man die Objektorientierung wirklich ausreizen...
Dieser Beitrag wurde von Mindhunter2202 bearbeitet: 26. Februar 2008 - 10:38
#11
geschrieben 26. Februar 2008 - 11:47
Zitat (Mindhunter2202: 26.02.2008, 10:33)
2. Die Datenmenge (mehrere 1000e Einträge). Da wären ja Excel Listen noch besser und performanter als XML.
Beides nicht ganz richtig, hast du das schon mal ausprobiert, wenn ja wohl nicht so optimal, denn es geht sehr wohl und performant genug ist es auch.
#12
geschrieben 26. Februar 2008 - 11:52
Zitat (Mindhunter2202: 26.02.2008, 10:33)
1. Keine Indizierung von Feldern (es soll ja nach allem Möglichen gesucht werden können) Datenbank ist mehr als nur eine x-beliebige Haltung von Daten.
2. Die Datenmenge (mehrere 1000e Einträge). Da wären ja Excel Listen noch besser und performanter als XML.
Also ich weiß nicht wie du XML-Dateien benutzt aber ich mach das über Listen (List<T>)
Die lassen sich wunderbar mit BindingSources Datagridviews verbinden und auch durchsuchen.
Es muss also nicht immer eine Datenbank sein!
#13
geschrieben 26. Februar 2008 - 12:02
Auf XML Lösung werde ich wohl verzichten, da ich z.B. schon 2 Mann kenne die das Tool gerne nutzen würden und die haben jeweil über 200GB MP3's ich glaub da is eine Datenbank performanter
Ansonsten gibbet im VS2008 ja direkt das Element "Lokale Datenbank" und wie ich erfahren habe is das wohl die SQLite und somit wohl ganz gut geeigenet oder?
#14
geschrieben 26. Februar 2008 - 12:03
Zitat
Beides zu 100% Richtig. Und ich wär vorsichtig, jemanden Schlamperei oder Nachlässigkeit bei seiner Arbeit zu unterstellen. Performant genug? Im Bezug auf was? Wie lange der User bereit ist zu warten?
Nochmals: es ist möglich die Daten als XML zu speichern, aber das war keine Anforderung. Und aufgrund meiner Erfahrung in diesem Bereich nicht die beste Lösung...
Es soll doch hier kein Glaubenskrieg werden, sondern wir sollten skelle dabei helfen, die von ihm beschriebenen Anforderungen bestmöglich zu erfüllen.
#15
geschrieben 26. Februar 2008 - 12:11
Zitat (skelle: 26.02.2008, 12:02)
Gott bewahre! Nein das ist MSSQL Compact wenn mich nicht alles täuscht! Hab ich aber nie ausprobiert da sich bisher immer ein Zentraler MSSQL-Server gefunden hat!
Naja 200GB sind dann doch ziemlich viel! Da würde sich XML wirklich nicht lohnen. Für ein kleines Projekt wäre das allerdings nicht das schlechteste zumal du ja Kompatibilitäten zu anderen Programm herstellen kannst die eine XML-Export-Funktion besitzen! Also ich würde auf jeden Fall eine XML-Import-Funktion integrieren.
- ← Sonderzeichen In Ner Sql Db Speichern
- Programmierung
- Projektplanung - Nich So Wirklich Ein Plan ^^ →