Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Welche Datenbank am besten?
houly - Mi 09.11.11 14:53
Titel: Welche Datenbank am besten?
Hallo liebe Community,
ich plane derzeit ein Projekt, wo es um eine Software geht, welche
über eine COM Schnittstelle Messwerte eines Gerätes ausliest und speichert/auswertet.
Da eine grafische Auswertung im Programm erfolgen soll, fand ich es für sinnvoll die Daten in einer DB zu speichern.
Leider habe ich mit Datenbanken in C# keine Ahnung, und wollt gerne mal nachfragen was sich für eine lokale Datenbank auf dem Client am besten geeignet?
Wie wird es realisiert und was ich vorallem gar nicht vorstellen kann. Wird eine externe Software verwendet neben den erstellten Programm um die DB zu schreiben/lesen auf dem Client später?
Es wäre super, wenn mir jemand weiterhelfen könnte.
Viele Grüße
Houly
Th69 - Mi 09.11.11 17:12
Hallo und :welcome:
dann sollte eine "Embedded Database" für dich am besten sein, z.B. SQLCompact oder Firebird Embedded, so daß du nur ein paar DLLs referenzieren mußt.
houly - So 13.11.11 02:30
Danke erst einmal für die schnelle Antwort.
Ich habe mir die Microsoft SQL Server Compact 4.0 mal heruntergeladen.
Wenn ich dann dort eine neue Datenquelle hinzufüge (Compact 3.5) und in mein Projekt integrieren möchte über das Wizard, bekomme ich immer den Fehler:
Hat es etwas damit zutuen, wenn man mehrere VS Versionen installiert hat?
Ich habe VS 2008 SP1 und VS 2010 drauf.
Ich würde alles noch einmal re-installen, aber ein Studio weglassen.
Meine Frage wäre, ob es sinnvoll ist das 2010er Studio, statt den 2008er zu benutzen, hinsichtlich meines Projektes?
Gruß
houly - So 13.11.11 17:31
Also das .NET Framework 3.5 SP1 lässt sich nicht installieren. Beim starten des Installer passiert nachd en Extract nix mehr.
Ich habe mein Projekt mal im VS 2010 geladen udn dort funktioniert das mit der DB.
Nach Anlegen eines Testprojektes um das Schreiben/Lesen der DB mal zu testen, häng ich schon an einen einfach Test fest :(
Er bringt mir immer den Fehler:
Fehler beim Analysieren der Abfrage. [ Token line number = 1,Token line offset = 36,Token in error = Alter ]
Mein Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlServerCe;
namespace DB_Test { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) {
SqlCeConnection conn = new SqlCeConnection("Data Source = patient.sdf;"); conn.Open();
SqlCeCommand command = conn.CreateCommand();
command.CommandText = "INSERT INTO Patient(Vorname, Name, Alter) VALUES (@vname, @nam, @alte)";
SqlCeParameter param = null;
param = new SqlCeParameter("@vname", SqlDbType.NVarChar, 200); command.Parameters.Add(param);
param = new SqlCeParameter("@nam", SqlDbType.NVarChar, 200); command.Parameters.Add(param);
param = new SqlCeParameter("@alte", SqlDbType.Int, 4); command.Parameters.Add(param);
command.Prepare();
command.ExecuteNonQuery();
command.Parameters[0].Value = textBox1.Text; command.Parameters[1].Value = textBox2.Text; command.Parameters[2].Value = textBox3.Text;
command.ExecuteNonQuery();
} } } |
Weiß jemand wo der Fehler liegt?
Trashkid2000 - So 13.11.11 21:11
Alter ist unter SQL ein reserviertes Wort (ALTER TABLE...). Da liegt der Fehler, der aber in diesem Fall nicht offensichtlich ist.
Hier mal eine Übersicht in der MSDN;:
http://msdn.microsoft.com/de-de/library/ms173340(v=SQL.90).aspx
Also entweder die Spalte in der Datenbank umbenennen und Query anpassen (ist das sauberste), oder den Spaltennamen maskieren:
SQL-Anweisung
1:
| INSERT INTO Patient(Vorname, Name, [Alter])... |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!