2013-04-09 4 views
0

J'utilise un formulaire comportant 10 zones de texte, 1 bouton de registre & 1 bouton de sortie. J'ai créé la base de données dans MS Access 2007 et enregistré le fichier dans le bureau. J'ai connecté par "Ajouter une nouvelle source de données". Fournisseur & Le chemin est: Fournisseur = Microsoft.Jet.OLEDB.4.0; Source de données = C: \ Users \ sipl \ Desktop \ Cust_Dtl.mdb. Mais quand je clique sur enregistrer l'erreur suivante montre:Vb.net 2010 connectivité avec MS Access 2007

con.Open() - Doesn't have a valid file name. 

Voici mon code:

Public Class Form2 
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
    Me.Close() 
End Sub 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim constring As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\sipl\Desktop\Cust_Dtl.mdb" & System.IO.Directory.GetCurrentDirectory & "Cust_Dtl.mdb" 
    Dim insertcmd As System.Data.OleDb.OleDbCommand = New System.Data.OleDb.OleDbCommand 
    Dim con As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection 
    con.ConnectionString = constring 
    insertcmd.CommandType = CommandType.Text 
    insertcmd.CommandText = String.Format("INSERT INTO {0} VALUES ('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}')", "Table1", TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text, TextBox6.Text, TextBox7.Text, TextBox8.Text, TextBox9.Text, TextBox10.Text) 
    insertcmd.Connection = con 
    con.Open() 
    Try 
     insertcmd.ExecuteNonQuery() 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 


    con.Close() 
End Sub 
End Class 

S'il vous plaît aider à résoudre ce problème. Merci.

Répondre

0

Vous appelez la double chaîne de base de données:

Dim constring As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\sipl\Desktop\Cust_Dtl.mdb" & System.IO.Directory.GetCurrentDirectory & "Cust_Dtl.mdb" 

Cela donne la chaîne "C: \ Users \ SIPL \ Desktop \ Cust_Dtl.mdbC: \ Users \ SIPL \ Desktop \ Cust_Dtl.mdb"

Retirer soit C:\Users\sipl\Desktop\Cust_Dtl.mdb"

ou & System.IO.Directory.GetCurrentDirectory & "Cust_Dtl.mdb