2009-06-17 4 views
1

Meine Datenbank muss in beliebigen Zeitabständen aktualisiert werden, manuell, mit neuen Informationen, die auf Standardtabellen ohne strukturelle Änderungen gesetzt werden. Eine App wird die Datenbank aktualisieren.
Eine andere App, die ich verteile (nur an Freunde und Familie, aber keine Sicherheitsfunktion wie Verschlüsselung der Datenbank benötigt), liest die Datenbank und verwendet ihre Daten auf Etiketten, Listenansichten usw.Welche Datenbank sollte ich in dieser VB.NET App verwenden?

Das Problem ist, ich bin die perfekte Definition von vollwertigen n00b bei der Programmierung jeglicher Art, und immer noch nicht wissen, welche Datenbank zu verwenden.

Ich dachte, dass ich eine SQL CE (* .sdf) Datei verwenden und diese Datenbank-Sache auf einem FTP speichern sollte. dann könnte ich es herunterladen und Daten davon erhalten, jedes Mal, wenn die "Client" -App ausgeführt wird, und bestimmte Schaltfläche ("Connect") angeklickt wird. Nach einigen googeln harten Kern, fand ich heraus, wie man die sdf Sache zu verbinden, diese Verbindungszeichenfolge:

Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=D:\Documents and Settings\Camilo\JCTM.sdf 

So verbindet sie, oder zumindest zeigen keinen Fehler.

Ich weiß nicht, ob es eine gute Idee ist, SDF SQL CE-Dateien als Datenbanken zu verwenden, wenn es zu schwer ist, vielleicht sollte ich für XML gehen? Was meinst du, was ist der einfachste Weg, um sehr einfache Datenbanken in VB.NET zu implementieren?

Durch einfache Datenbanken ich meine: - keine Suche erforderlich - keine erweiterten Funktionen außer Strings auf Tabellen mit Spalten und Zeilen zu speichern - leicht zugänglich, lesen, bearbeiten, usw. durch verschiedene VB.NET apps

Ist SDF eine gute Idee?

+0

Haben Sie mehrere Client-Apps, die Ihre Datenbank gleichzeitig ändern? –

+0

Nein, Client-Apps laden nur Protokolle auf ein FTP hoch, und nur eine App ändert die Datenbank. –

Antwort

0

Zum Glück für Sie, können Sie abstrahieren die Notwendigkeit, sich mit der Back-End-Datenbank, die Sie verwenden, um Ihre Daten zu speichern.

Mit Technologien wie ODBC (Open Database Connectivity) und OLEDB (Objektverknüpfung und -einbettung, Datenbank) können Sie Ihre Bedenken für den Back-End-Datenspeicher auf die Erstellung Ihrer Verbindungszeichenfolge beschränken. In Ihrem Beispiel lautet die Verbindungszeichenfolge: "Ich werde über den OLEDB-Provider eine Verbindung mit einer SQL Server CE-Datenbank herstellen. Sie befindet sich physisch über D:/...

Innerhalb des Codes verwenden Sie den Standard OLEDB-Mechanismen für den Zugriff und die Verwaltung der Datenbank Aufgrund dieser Abstraktion können Sie OLEDB-Provider für SQL Server-, Oracle-, XML-, Access- oder durch Kommas getrennte Textdateien als Backing Store verwenden, wenn Sie möchten, und die einzige Änderung, die Sie vornehmen müssen Ihr Code ist die Verbindungszeichenfolge Ihre Wahl sollte dann sein, die Datenbank zu wählen, die Sie die Werkzeuge und das Know-how haben, zum anfänglich zu gründen und zu handhaben

+0

Würde, die aussehen wie ...: Dim ConSQL As New OleDb.OleDbConnection ConSQL.ConnectionString ConSQL.ConnectionString = "Provider = Microsoft.SQLSERVER.CE.OLEDB.3.5; Data Source = \ file.sdf" ConSQL.Open() Dim CommandSQL As String CommandSQL = "SQL-Befehl hier" Dim da Als OleDb.OleDbDataAdapter da = New OleDb.OleDbDataAdapter (CommandSQL, ConSQL) . . . Con.Close() ?? wäre es so? oder mache ich es falsch? danke für Ihre Hilfe. und, zweite Frage: meine Benutzer brauchen SQL Server kompakt installiert? oder einfach nur das .NET Framework? Ich möchte das so benutzerfreundlich wie möglich machen. danke nochmal! ^^ –

+0

(es sieht so aus, als ob es die CRLFs zerhackt hat, der Code sieht nicht sehr leserlich aus>>. <) –

+0

Theoretisch kann der Provider anstelle des vollständigen Pakets für den Zugriff auf den Backend-Datenspeicher verwendet werden. Wenn Sie also den MS Access/Jet-Provider verwenden, müssen Sie nicht unbedingt MS Access auf dem Client-Rechner haben. Ich bin nicht sicher, ob der SQL CE-Provider standardmäßig auf Windows-Rechnern enthalten ist, und ich bin nicht sicher, ob der Provider in die ausführbare Datei eingebunden ist oder nicht (ich habe nicht mit SQL CE gearbeitet). Das .NET-Framework wird benötigt, um eine in Visual Studio .NET entwickelte App auszuführen. Ich neige dazu, Access .MDB-Dateien zu verwenden, weil sie relativ portabel, schnell und robust sind, ohne zu groß zu sein. – HipCzeck

0

Ich würde mit Microsoft Access beginnen, weil es eine eigene Benutzeroberfläche hat und gut mit .NET spielen kann.

Sie können auch versuchen, die ADO.Net-Implementierung für SQLite, die ich auch sehr nützlich gefunden habe.

+0

So kann ich schreiben und lesen aus dem Zugriff von einer VB.NET App ohne Probleme? wie, nur eine neue Zeile hinzufügen, und solche Dinge? Wie würde es von LINQ aus darauf zugreifen? –

2

Ich würde Sql Server Express seine freie empfehlen und kann mit .net Anwendungen neu verteilt werden als Teil des Installationsprozesses

Die Herausforderung besteht darin, die Änderungen zwischen den verschiedenen Clients zu synchronisieren. Wenn Sie Zugriff auf einen FTP-Server haben, können Sie möglicherweise eine Website in IIS hosten. Wenn Sie das können, können Sie einfach Webservices verwenden und gegen eine Datenbank lesen, anstatt eine lokale zu kopieren.

Verwandte Themen