hallo
ich habe folgendes problem....
ich versuche eine datenbank. fehlt diese, wird sie erstellt:
wird sie erstellt, wird ein tabelle hinzugefügt:
dann wird versucht die tabelle zu öffnen:
soweit, sogut.
ich möchte dem user die möglichkeit geben die tabelle zu entfernen oder ein backup zu machen.
in beiden fällen muß die verbindgung zur datenbank geschlossen werden:
ich kann die tabelle genau 2x löschen...danach erhalte ich keinen zugriff mehr...obwohl ich sie schliesse und dbCon = Nothing ist.
jmd eine idee ?
ich habe folgendes problem....
ich versuche eine datenbank. fehlt diese, wird sie erstellt:
VB.NET-Quellcode
- Private Function Open(Optional pass As String = "") As Boolean
- Try
- dbCon = New OleDb.OleDbConnection
- dbCon.ConnectionString =
- "Provider=Microsoft.Jet.OLEDB.4.0;" &
- "Data Source=" & modMain.My.DBpath
- If pass.Length <> 0 Then
- dbCon.ConnectionString = dbCon.ConnectionString &
- ";Jet OLEDB:Database Password=" & pass
- End If
- dbCon.Open()
- Return True
- Catch ex As Exception
- If Err.Number <> 5 Then
- Log(LogColor.errorInfo, Err.Description, Err.Number)
- End If
- Return False
- End Try
- End Function
- Private Function CreateNewDatabase(Optional pass As String = "") As Boolean
- Dim catalog As Object
- Dim strCreate As String
- KillFile(modMain.My.DBpath, False)
- Log(LogColor.info, "Eine neue Datenbank wird erstellt.")
- Try
- strCreate = "Provider=Microsoft.Jet.OLEDB.4.0; " &
- "Data Source=" & modMain.My.DBpath
- If pass.Length <> 0 Then
- strCreate = strCreate & "; Jet OLEDB:Database Password=" & pass
- End If
- catalog = CreateObject("ADOX.Catalog")
- catalog.create(strCreate)
- catalog = Nothing
- Return True
- Catch ex As Exception
- Log(LogColor.errorInfo, Err.Description, Err.Number)
- Return False
- End Try
- End Function
wird sie erstellt, wird ein tabelle hinzugefügt:
VB.NET-Quellcode
- Private Function CreateTable() As Boolean
- Dim sql As String = "CREATE TABLE " & "Overview" & "(" &
- "ID COUNTER NOT NULL CONSTRAINT PK_ID_no PRIMARY KEY, " &
- "Filename Text(255) NOT NULL, " &
- "Path Text NOT NULL, " &
- "Filesize Integer, " &
- "Playtime Integer," &
- "ID3v1 Bit, " &
- "ID3v2 Bit, " &
- "Track Integer, " &
- "Title Text, " &
- "Artist Text, " &
- "Album Text, " &
- "Jahr Integer, " &
- "Genre Text, " &
- "Comment Text" &
- ")"
- Try
- Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(sql, dbCon)
- cmd.ExecuteNonQuery()
- cmd.Dispose()
- cmd = Nothing
- Return True
- Catch ex As Exception
- Log(LogColor.errorInfo, Err.Description, Err.Number)
- Return False
- End Try
- End Function
dann wird versucht die tabelle zu öffnen:
VB.NET-Quellcode
- Public Function SelectTable(ByVal CloseTable As Boolean,
- ByRef cmd As OleDb.OleDbCommand) As Boolean
- Try
- Dim sql As String = "SELECT * FROM Overview"
- cmd = New OleDb.OleDbCommand(sql, dbCon)
- If CloseTable Then
- cmd.Dispose()
- cmd = Nothing
- End If
- Return True
- Catch ex As Exception
- Log(LogColor.errorInfo, Err.Description, Err.Number)
- Return False
- End Try
- End Function
soweit, sogut.
ich möchte dem user die möglichkeit geben die tabelle zu entfernen oder ein backup zu machen.
in beiden fällen muß die verbindgung zur datenbank geschlossen werden:
VB.NET-Quellcode
- Private Sub butDatabaseRemove_Click(sender As Object, e As EventArgs) Handles butDatabaseRemove.Click
- If Message("Hiermit wird die Datenbank unwiederruflich gelöscht.", vbInformation + vbYesNoCancel) <> vbYes Then
- Exit Sub
- End If
- If dbCon IsNot Nothing Then
- dbCon.Close()
- dbCon = Nothing
- End If
- If KillFile(modMain.My.DBpath, True) = True Then
- gbDatabase.Visible = False
- End If
- End Sub
ich kann die tabelle genau 2x löschen...danach erhalte ich keinen zugriff mehr...obwohl ich sie schliesse und dbCon = Nothing ist.
jmd eine idee ?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „woeh“ ()