2014-05-24 3 views
0

Je souhaite créer une page de connexion pour mon application. et quand tout est terminé et je veux vous connecter, il montre toujoursImpossible de se connecter à Access à l'aide de VB.net

Erreur:

Le moteur de base de données Microsoft Jet ne peut pas ouvrir le fichier « C: \ Users \ Gio \ Documents \ Visual Studio 2012 \ Projets \ CSS \ CSS \ bin \ Debug '. Il est déjà ouvert exclusivement par un autre utilisateur, ou vous avez besoin d'une autorisation pour afficher ses données.

code:

Imports System.Data.OleDb 

Public Class Login 
    Dim path = System.Windows.Forms.Application.StartupPath 
    Private Sub Login_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
End Sub 

Private Sub loginbtn_Click(sender As Object, e As EventArgs) Handles loginbtn.Click 
    Dim connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Gio\Documents\Visual Studio 2012\Projects\CSS\CSS\bin\Debug;") 
    Dim command As New OleDbCommand("SELECT [ID] FROM [User] WHERE [usernameField] = Username AND [passwordField] = Password", connection) 

    Dim usernameparam As New OleDbParameter("Username", Me.usernamebox.Text) 
    Dim passwordparam As New OleDbParameter("Password", Me.passwordbox.Text) 

    command.Parameters.Add(usernameparam) 
    command.Parameters.Add(passwordparam) 
    command.Connection.Open() 
    Dim reader As OleDbDataReader = command.ExecuteReader() 
    If reader.HasRows Then 
     MessageBox.Show("Login Succesful!") 
     passwordbox.Text = "" 
     Me.Hide() 
     Main.Show() 

    Else 
     MessageBox.Show("Username and Password are incorrect!") 
     passwordbox.Text = "" 
    End If 

    command.Connection.Close() 
End Sub 


Private Sub exitbtn_Click(sender As Object, e As EventArgs) Handles exitbtn.Click 
    Me.Close() 
    End Sub 
End Class 
+0

avez-vous ouvert la base de données d'accès en utilisant exclusivement l'accès ms? – Jade

+0

comment vérifier si je l'ai fait ou non jade? @jay merci pour l'édition. Toujours nouveau sur ce site :) – Bento

+0

Oh désolé, vous n'avez pas spécifié le nom de fichier ms dans votre chaîne de connexion. – Jade

Répondre

1

Modifier cette ligne

Dim connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Gio\Documents\Visual Studio 2012\Projects\CSS\CSS\bin\Debug;") 

à

Dim connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Gio\Documents\Visual Studio 2012\Projects\CSS\CSS\bin\Debug\YourMSAccessDB.mdb;") 

ou pour charger le db dans votre répertoire de sortie

Dim connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\YourMSAccessDB.mdb;") 
'".\" is equivalent to your output directory or where your application (exe file) is located.