2013-04-09 127 views
0

我使用具有10个文本框,1个寄存器按钮& 1退出按钮的形式。我已经在MS Access 2007中创建了该数据库并将该文件保存在桌面上。我已通过“添加新数据源”进行了连接。提供商&路径是:提供商= Microsoft.Jet.OLEDB.4.0;数据源= C:\用户\ SIPL \桌面\ Cust_Dtl.mdb。但是,当我点击注册了以下错误显示:Vb.net 2010连接与MS Access 2007年

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

这里是我的代码:

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 

请帮助解决这个问题。谢谢。

回答

0

你两次调用数据库中的字符串:

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" 

这使字符串 “C:\用户\ SIPL \桌面\ Cust_Dtl.mdbC:\用户\ SIPL \桌面\ Cust_Dtl.mdb”

删除任一C:\Users\sipl\Desktop\Cust_Dtl.mdb"

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