Connectionstring ändern
-
HalliHallo,
ich brauche dringend eure Hilfe. Ich habe eine WindowForms-Anwendung gebaut, mit dem Designer ein Dataset und TableAdapter erstellt. Nun will ich, dass der Connection-String der Table-Adapter änderbar ist, damit ich auf verschiednee Datenbanken mit identischer Struktur zugreifen kann.
Ich poste mal den Code, wie ich es bisher versucht habe:
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { try { if (IO::File::Exists("Einstellungen.txt")) { array<String^>^ einstell = IO::File::ReadAllLines("Einstellungen.txt"); DBPath = einstell[0]; } this->tbl_Auftrag_AllgTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_Auftrag_BeArbTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_Auftrag_DruckTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_Auftrag_SatzTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_KundenTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_PapierTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_Auftrag_BindungTableAdapter->Connection->ConnectionString::set(DBPath); fensterAdresse->setDataPath(DBPath); this->tbl_Auftrag_AllgTableAdapter->NeueAuftragsnummer(); } catch(...) { OpenFileDialog^ FileDialog1 = gcnew OpenFileDialog; FileDialog1->ShowDialog(); Path = Convert::ToString(FileDialog1->FileName); DBPath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";User Id=admin;Password="; StreamWriter ^sw = gcnew StreamWriter("Einstellungen.txt"); sw->WriteLine(DBPath); sw->Close(); this->tbl_Auftrag_AllgTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_Auftrag_BeArbTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_Auftrag_DruckTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_Auftrag_SatzTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_KundenTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_PapierTableAdapter->Connection->ConnectionString::set(DBPath); this->tbl_Auftrag_BindungTableAdapter->Connection->ConnectionString::set(DBPath); fensterAdresse->setDataPath(DBPath); } this->tbl_Auftrag_AllgTableAdapter->NeueAuftragsnummer(); this->Annahmedate->Value = ::DateTime::Now; }
Ich lese den Connection-String also aus einer Datei aus und weise ihn den Table-Adaptern zu. Dann probiere ich eine Verbindung herzustellen, durch Aufruf einer Methode. Wenn es dabei Fehler gibt, kann ich über einen OpenFileDialog die Datenbankdatei auswählen und den neuen String in die Datei schreiben und den verschiedenen Adaptern zuweisen. Leider wird der Connection-String der Tableadapter nicht neu zugewiesen, denn beim Ausprobieren bekomme ich die Fehlermeldung, dass er die Verbindung mit dem alten Conn-String herstellen will.
Ich habe auch die ConnectionModifiers auf Public gesetzt, daran kann es auch nicht liegen.
Ich verzweifle langsam, denn ich muss das Programm in 16 Tagen abgeben und es ist unerlässlich, dass es auf anderen rechnern und mit unterschiedlichen Datenbanken läuft. HILFE!!!
-
Baue nur ein Connection Objekt auf und weise dies dann später zu.
-