Ich schreibe eine Anwendung, in der ein Benutzer eine Verbindungszeichenfolge manuell bereitstellt, und ich frage mich, ob ich die Verbindungszeichenfolge auf irgendeine Weise überprüfen kann. Ich meine, prüfen Sie, ob sie korrekt ist und ob die Datenbank vorhanden ist.
c#
connection-string
Agnieszka
quelle
quelle
If the SqlConnection goes out of scope, it is not closed. Therefore, you must explicitly close the connection by calling Close.
Dispose()
AnrufeClose()
Versuche dies.
try { using(var connection = new OleDbConnection(connectionString)) { connection.Open(); return true; } } catch { return false; }
quelle
Wenn das Ziel Gültigkeit und nicht Existenz ist, reicht Folgendes aus:
try { var conn = new SqlConnection(TxtConnection.Text); } catch (Exception) { return false; } return true;
quelle
Verwenden Sie für SQLite Folgendes: Angenommen, Sie haben eine Verbindungszeichenfolge im Textfeld txtConnSqlite
Using conn As New System.Data.SQLite.SQLiteConnection(txtConnSqlite.Text) Dim FirstIndex As Int32 = txtConnSqlite.Text.IndexOf("Data Source=") If FirstIndex = -1 Then MsgBox("ConnectionString is incorrect", MsgBoxStyle.Exclamation, "Sqlite") : Exit Sub Dim SecondIndex As Int32 = txtConnSqlite.Text.IndexOf("Version=") If SecondIndex = -1 Then MsgBox("ConnectionString is incorrect", MsgBoxStyle.Exclamation, "Sqlite") : Exit Sub Dim FilePath As String = txtConnSqlite.Text.Substring(FirstIndex + 12, SecondIndex - FirstIndex - 13) If Not IO.File.Exists(FilePath) Then MsgBox("Database file not found", MsgBoxStyle.Exclamation, "Sqlite") : Exit Sub Try conn.Open() Dim cmd As New System.Data.SQLite.SQLiteCommand("SELECT * FROM sqlite_master WHERE type='table';", conn) Dim reader As System.Data.SQLite.SQLiteDataReader cmd.ExecuteReader() MsgBox("Success", MsgBoxStyle.Information, "Sqlite") Catch ex As Exception MsgBox("Connection fail", MsgBoxStyle.Exclamation, "Sqlite") End Try End Using
Ich denke, Sie können es leicht in C # -Code konvertieren
quelle