2016-11-18 5 views
0

Ich versuche, eine MS Access-Datenbank in C# mit OLE DB zu verwenden, aber jedes Mal, wenn die Datenbank geladen wird, werden die alten Daten nicht beibehalten.OLE DB überschreiben alte Datenbank

Dies ist mein Code:

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Databases\\Database.accdb;Persist Security Info=False;"; 
OleDbConnection connection = new OleDbConnection(connectionString); 
OleDbCommand command = connection.CreateCommand(); 
command.CommandText = "INSERT INTO test (userID, name) VALUES(?, ?)"; 
// Setting parameters to random integer and string 
command.Parameters.Add(new OleDbParameter("@userID", randomID)); 
command.Parameters.Add(new OleDbParameter("@name", randomName)); 
command.ExecuteNonQuery(); 

Für Testzwecke ich eine zufällig generierte ID und Namen verwenden. Wenn ich die Datenbank in MS Access überprüfe, werden die Daten jedes Mal überschrieben. Fehle ich etwas?

Ich benutze diesen Code zum Erstellen der Tabelle:

OleDbCommand command = connection.CreateCommand(); 
command.CommandText = "CREATE TABLE test (" + 
         "userID INTEGER NOT NULL," + 
         "name TEXT(20) NOT NULL," + 
         "PRIMARY KEY(userID)" + 
         ")"; 
command.ExecuteNonQuery(); 
+0

Es ist nicht klar. Was meinst du mit _jedes Mal, wenn die Datenbank lädt_? – Steve

+0

@Steve Ich meine jedes Mal, wenn ich die Datenbankverbindung öffnen – Mrten

+0

@LarsTech Fehler im obigen Code, ich tue das in der tatsächlichen Code – Mrten

Antwort

2

Diese Regel ist im Zusammenhang mit den Eigenschaften der Database.accdb Datei, wie sie in Visual Studio vorhanden ist.

Standardmäßig ist das Feld "In Ausgabeverzeichnis kopieren" für die Datei auf "Immer kopieren" eingestellt. Dies bedeutet, dass jedes Mal, wenn die Anwendung in Visual Studio gestartet wird, die Arbeitskopie von Database.accdb vollständig durch die Prototypversion ersetzt wird.

So ist die Lösung irgendwie einfach ... das Feld ändern, um "zu Kopieren, falls neuere" (oder "Do not copy")

+0

Danke, daran habe ich nicht einmal gedacht ... – Mrten

Verwandte Themen