WinFuture-Forum.de: C# - Lokale Datenbank - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

C# - Lokale Datenbank


#1 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 24. Februar 2008 - 17:47

Hallo,
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
0

Anzeige



#2 _MagicAndre1981_

  • Gruppe: Gäste

geschrieben 25. Februar 2008 - 08:52

was meinst du mit lokale Datenbank? Den SQL Server 2006 Express oder die Compact Edition?
0

#3 Mitglied ist offline   Mindhunter2202 

  • Gruppe: aktive Mitglieder
  • Beiträge: 31
  • Beigetreten: 02. Mai 07
  • Reputation: 0

geschrieben 25. Februar 2008 - 09:13

Verwende als Container einfach eine Access DB. Als Daten-Storage für kleine private Projekte ist die mit Sicherheit vollkommen ausreichend.

lg Martin
0

#4 Mitglied ist offline   gr4y 

  • Gruppe: aktive Mitglieder
  • Beiträge: 216
  • Beigetreten: 08. Dezember 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Großpösna
  • Interessen:PHP und MySQL, .NET-Programmierung

geschrieben 25. Februar 2008 - 10:29

Beitrag anzeigenZitat (Mindhunter2202: 25.02.2008, 09:13)

Verwende als Container einfach eine Access DB. Als Daten-Storage für kleine private Projekte ist die mit Sicherheit vollkommen ausreichend.

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 :imao:

sysProfile

Mit leerem Kopf nickt es sich leichter. (Zarko Petan, slowenischer Aphoristiker, *1944)
0

#5 _MagicAndre1981_

  • Gruppe: Gäste

geschrieben 25. Februar 2008 - 10:31

nee, bitte kein Access, bzw Jet 4.0.

Entweder SQLite oder auch Firebird embedded sind eine bessere Wahl.
0

#6 Mitglied ist offline   gr4y 

  • Gruppe: aktive Mitglieder
  • Beiträge: 216
  • Beigetreten: 08. Dezember 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Großpösna
  • Interessen:PHP und MySQL, .NET-Programmierung

geschrieben 25. Februar 2008 - 10:44

Beitrag anzeigenZitat (MagicAndre1981: 25.02.2008, 10:31)

nee, bitte kein Access, bzw Jet 4.0.

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 :imao:

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!

sysProfile

Mit leerem Kopf nickt es sich leichter. (Zarko Petan, slowenischer Aphoristiker, *1944)
0

#7 Mitglied ist offline   e-hahn 

  • Gruppe: aktive Mitglieder
  • Beiträge: 530
  • Beigetreten: 17. Februar 07
  • Reputation: 39
  • Geschlecht:Männlich
  • Wohnort:Neuruppin

geschrieben 25. Februar 2008 - 10:56

MySQL oder der gleichen ist wohl das denkbar schlechteste für eine lokale Datenbank, zumindest wenn man solche Projekte auch weitergeben möchte. Man mag von Access halten was man will, aber für so etwas ist es dann besser auf Access zu setzen, wenn man es hat, man braucht es ja nur als Entwickler, der Enduser braucht es ja nicht.

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.
0

#8 _MagicAndre1981_

  • Gruppe: Gäste

geschrieben 25. Februar 2008 - 10:59

SQlite und Firebird embedded sind auch lokale DBs die ohne Server laufen :imao:
0

#9 Mitglied ist offline   e-hahn 

  • Gruppe: aktive Mitglieder
  • Beiträge: 530
  • Beigetreten: 17. Februar 07
  • Reputation: 39
  • Geschlecht:Männlich
  • Wohnort:Neuruppin

geschrieben 25. Februar 2008 - 11:07

Ich weiß, ist aber meiner Meinung nach nicht so leicht handzuhaben :imao:.
0

#10 Mitglied ist offline   Mindhunter2202 

  • Gruppe: aktive Mitglieder
  • Beiträge: 31
  • Beigetreten: 02. Mai 07
  • Reputation: 0

geschrieben 26. Februar 2008 - 10:33

Da es um C# geht würde ich trotz aller Bedenken auf ein Microsoft Produkt setzen. Die Unterstützung seitens der Sprache ist sehr gut und das ist nicht von der Hand zu weisen. Natürlich muss es nicht Access sein. Auch SQL-Server 2008 Compact wär sicher eine Alternative.
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

0

#11 Mitglied ist offline   e-hahn 

  • Gruppe: aktive Mitglieder
  • Beiträge: 530
  • Beigetreten: 17. Februar 07
  • Reputation: 39
  • Geschlecht:Männlich
  • Wohnort:Neuruppin

geschrieben 26. Februar 2008 - 11:47

Beitrag anzeigenZitat (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.

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.
0

#12 Mitglied ist offline   gr4y 

  • Gruppe: aktive Mitglieder
  • Beiträge: 216
  • Beigetreten: 08. Dezember 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Großpösna
  • Interessen:PHP und MySQL, .NET-Programmierung

geschrieben 26. Februar 2008 - 11:52

Beitrag anzeigenZitat (Mindhunter2202: 26.02.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.


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!

sysProfile

Mit leerem Kopf nickt es sich leichter. (Zarko Petan, slowenischer Aphoristiker, *1944)
0

#13 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 26. Februar 2008 - 12:02

Hallo also erstmal Danke für die vielen Antworten ;)

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?
0

#14 Mitglied ist offline   Mindhunter2202 

  • Gruppe: aktive Mitglieder
  • Beiträge: 31
  • Beigetreten: 02. Mai 07
  • Reputation: 0

geschrieben 26. Februar 2008 - 12:03

gr4y: Ich hab nix gegen XML. Aber im 1. Post stand, dass er eine Datenbank verwenden will. Also hab ich das mal als Anforderung angesehen. Ich nehm auch List für XML, allerdings ist ein Datenbanksystem in der Regel schneller. Ich hab es ausgiebigst getestet, auch mit Augenmerk auf Mobile Devices.

Zitat

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.

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.
0

#15 Mitglied ist offline   gr4y 

  • Gruppe: aktive Mitglieder
  • Beiträge: 216
  • Beigetreten: 08. Dezember 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Großpösna
  • Interessen:PHP und MySQL, .NET-Programmierung

geschrieben 26. Februar 2008 - 12:11

Beitrag anzeigenZitat (skelle: 26.02.2008, 12:02)

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?


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.

sysProfile

Mit leerem Kopf nickt es sich leichter. (Zarko Petan, slowenischer Aphoristiker, *1944)
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0