我正在尝试创建一个连接到Access 2003数据库的非常简单的应用程序。 我建立了一个非常简单的用户界面,带有7个标签和7个文本框,只有2个按钮:其中一个是“保存”,另一个是“退出”。
在我的表单中,我添加了代码:
Imports System.Data
Imports System.Data.OleDb
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
'Try
Dim saveinto As New OleDb.OleDbCommand
Dim constr As String = "Provider=Microsoft.Jet.Oledb.4.0; Data Source=" & Application.StartupPath & "db.mdb"
Dim conn As New OleDb.OleDbConnection(constr)
saveinto.Connection = conn
saveinto.CommandType = CommandType.Text
saveinto.CommandText = " insert into users(id,username,nid,money,mode,help,yesorno) " & " values ('" & TextBox7.Text & "' ,'" & TextBox1.Text & "' , '" & TextBox2.Text & "','" & TextBox3.Text & "' , '" & TextBox4.Text & "' , '" & TextBox5.Text & "' , '" & TextBox6.Text & "')"
conn.Open()
saveinto.ExecuteNonQuery()
conn.Close()
MsgBox("All Done :P ")
Exit Sub
End Sub
当我按下保存按钮时出现错误:
System.Data.dll`中出现'System.Data.OleDb.OleDbException'类型的第一次机会异常
并且它第一次看到它,我认为我的系统(WinVista :)或数据库(使用我的Access 2007构建然后转换为2003)出错了,我卸载Access 2007并安装2003然后重建新数据库和用它替换旧的。
当我运行我的应用程序并按下保存按钮时,我收到了与
相同的错误消息我在问这个问题之前在这里搜索但是我找不到相同的问题而且我试图从类似的错误中应用一些建议但没有发生任何事情,所以原谅我,如果重复一个问题,请求帮助。 谢谢OledbException未处理
Could not find file 'C:\Users\Mahmoud\Documents\Visual Studio 2008\Projects\Test\Test\bin\Debugdb.mdb
。
答案 0 :(得分:0)
似乎Application.StartupPath
返回
C:\Users\Mahmoud\Documents\Visual Studio 2008\Projects\Test\Test\bin\Debug
并且没有尾部反斜杠(\
),因此当您向其附加db.mdb
时,您会得到一条实际上并未指向数据库文件的路径。试试
... Application.StartupPath & "\db.mdb"
代替。
答案 1 :(得分:0)
(由于我没有足够的声誉在这里评论,我不得不输入这个作为答案)
您的代码中缺少反斜杠。 正如Gord Thompson所说,你需要尝试这个:
... Application.StartupPath & "\db.mdb"
..而不是:
Application.StartupPath & "db.mdb"