Ich habe ein Programm, das Access-Datenbanken öffnen, bearbeiten, erstellen und speichern soll. Um zu sparen, kopiere ich eine leere Datenbank mit nur den Tabellen (nur um die Mühe zu vermeiden, jede Tabelle und Spalte usw. zu erstellen) und versuche, sie über die TableAdapterManager.UpdateAll-Methode mit Werten zu füllen.C# füllen eine Access-Datenbank aus einem Datensatz
string _TemplateConnectString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};";
_connection = new OleDbConnection(string.Format(_TemplateConnectString, dlg.FileName));
_connection.Open();
DataSet1TableAdapters.TableAdapterManager tam=new TableAdapterManager();
tam.Connection = _connection;
try
{
tam.UpdateAll(dataset);
}
catch (System.Exception ex)
{
MessageBox.Show("Update failed");
}
Es endet mit Ausnahmen, aber die Werte werden nicht in die neue Datenbank eingefügt.
Auch so weit wie ich weiß die UpdateAll Methode aktualisiert nur modifizierte Zeile, so wenn ich einige db öffnen und es fügt Zeilen, wird es nicht berücksichtigen, auch wenn nicht in der Datenbank, die ich versuche zu füllen .
ich auch versucht haben, die Datenbank mit den ADODB und ADOX Erweiterungen füllen, aber alle Lösungen, die ich mit denen, fand viele Hardcoding und keine Grüße für Hierarchie wurde, Schlüssel, etc.
Gibt es eine Möglichkeit zu zwingen alles in die neue Datenbank einfügen?
Sieht aus wie ein Kommentar zu mir, nicht wie eine Antwort. –
Ja, ich habe eine Datei "emptydb.mdb" mit allen vordefinierten, aber leeren Tabellen. Ich erlaube nicht, in dieser Datei Gedanken zu speichern. Nur zu Datenbanken mit anderen Namen –