Vb.net Can';t将数据插入数据库ms access vb

Vb.net Can';t将数据插入数据库ms access vb,vb.net,Vb.net,案例1:我无法将数据插入数据库 Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\ProjectVB.accdb") Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Admin\Documents\ProjectVB.accd

案例1:我无法将数据插入数据库

  Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\ProjectVB.accdb")
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Admin\Documents\ProjectVB.accdb")
案例2:我可以将数据插入数据库

  Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\ProjectVB.accdb")
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Admin\Documents\ProjectVB.accdb")
数据库已保存在我的项目中

conn.Open()

            cmd.Connection = conn
            cmd.Parameters.AddWithValue("@ac_ID", txtID.Text)
            cmd.Parameters.AddWithValue("@ac_pass", txtPassword.Text)
            cmd.Parameters.AddWithValue("@nation_ID", txtNoID.Text)
            cmd.Parameters.AddWithValue("@fName", txtFirstName.Text)
            cmd.Parameters.AddWithValue("@lName", txtLastName.Text)
            cmd.Parameters.AddWithValue("@tel", txtTel.Text)
            cmd.Parameters.AddWithValue("@province", cbNation.SelectedItem)
            cmd.Parameters.AddWithValue("@regOn", dtRegOn.Text)
            cmd.Parameters.AddWithValue("@status", txtStatus.Text)
            cmd.Parameters.AddWithValue("@gender", cbGender.SelectedItem)
            cmd.Parameters.AddWithValue("@location", txtLocation.Text)
            cmd.Parameters.AddWithValue("@img", imgBuffer)
            cmd.Parameters.AddWithValue("@rank", cbRank.SelectedItem)
            cmd.CommandText = "INSERT INTO db_KJ_Profile VALUES(@ac_ID,@ac_pass,@nation_ID,@fName,@lName,@tel,@province,@regOn,@status,@gender,@location,@img,@rank)"
            cmd.ExecuteNonQuery()

对于DataDirectory替换字符串,应检查文件夹
PROJECTFOLDER\BIN\DEBUG
(或相同路径的x86版本)中的数据库内容

这是因为在WinForms应用程序中,在VS的调试会话中运行时,
DataDirectory
指向执行应用程序的文件夹(项目文件夹的BIN\debug或BIN\x86\debug子文件夹)

这一点很容易被忽视,而且总是造成混乱。

如果在项目项中列出了ACCDB文件,情况会更糟。在这种情况下,数据库项有一个名为“复制到输出目录”的属性。您应该检查是否设置为
Copy If Newer或Copy Never
,而不是
Copy Always
,因为在这种情况下,每次重新启动调试会话时,都会复制数据库的新副本(当然没有刚刚插入的数据)从项目文件夹到BIN\DEBUG文件夹

在第一种情况下,您可以从数据库中读取吗?可以。我可以读取但无法插入。检查数据库时是否收到错误消息,或者只是没有找到插入的数据?显示您的插入代码检查数据库时没有找到插入的数据。非常感谢。现在我将属性设置为“复制”,如果更新了,并且我的数据库也更新了。