2016-07-28 7 views
0

Ich habe ein Formular mit einer Schaltfläche und einem DataGridView, ich weiß, dass ich meine Datenbank mit der OleDB-Verbindung öffnen kann, aber mein Problem ist, dass ich wo meine Datenbank suchen muss (eine ".mdb" -Datei) ist auf meinem Computer.So öffnen Sie eine Datenbank mit der File.Open-Methode

Gibt es eine Möglichkeit, dass ich mit dieser Schaltfläche eine Datei öffne (um meine Datenbank zu durchsuchen) und dann auf meinem Datagridview anzeigen?

+0

Wenn Sie die Datenstruktur von MDB kennen, dann ja. Ansonsten nein. –

+0

Wie kann ich es suchen (Ich werde den Filter nur hinzufügen, um die MDB-Dateien zu lesen) und wenn ich es auswähle ich bereits meine Abfrage aktivieren, um eine 'SELECT * FROM Mydatabase' zu ​​machen und es auf der DatagridView anzeigen – MattDAVM

+0

Verwenden Sie OleDB, Es ist einfacher, OleDB neu zu erfinden. –

Antwort

2

Ich bin nicht sicher, was Sie mit ‚File.Open‘ bedeuten, aber Sie können eine OpenFileDialog machen, wo der Benutzer die Datei auswählen kann, die er öffnen möchte. Von diesem Dialog erhalten Sie einen Dateinamen, den Sie in Ihrer Verbindungszeichenfolge verwenden können.

OpenFileDialog dlg = new OpenFileDialog(); 
dlg.Filter = "Database Files|*.mdb"; 
if (dlg.ShowDialog() == DialogResult.OK) { 
    string dbfile = dlg.FileName; 
    string connectstring = string.format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}";Persist Security Info=False;, dbfile); 

    using (OleDbConnection con = new OleDbConnection(connectstring)) { 
     //... do your database operations here 
    } 

} 
+0

sagen "file.Open 'Ich meinte diese Situation https://msdn.microsoft.com/en-us/library/b9skfh7s(v=vs.110).aspx – MattDAVM

+1

Nein, Sie können nicht direkt eine db-Datei mit' Datei öffnen .Open', es sei denn, Sie kennen die interne Struktur dieser Datei. Dafür ist OleDb da. Sie müssten all diese Dinge selbst neu implementieren. – derpirscher