OLEDB 命令未保存在访问数据库中


  • 我在Windows窗体中工作,并尝试使用OLEDB连接到访问.accdb文件
  • 我可以毫无问题地选择数据
  • 我可以毫无错误地执行InsertCreate命令
  • 但是当我之后检查数据库时,数据并没有显示出来

例如,当我创建一个新表时,代码会说表已经创建,如果我尝试在不关闭Windows窗体的情况下再次创建表,它会抛出一个错误,说表已经存在,但如果我关闭并重新启动程序,它会让我再次创建表。

此外,如果我查看Access文件,我不会看到该表。我已经在Access打开和关闭的情况下尝试了多次测试。连接字符串是正确的,因为我对Access文件中的表进行了更改,并且这些更改反映在我发送的SELECT查询中。

我怀疑Access中一定有一个设置,我必须启用它才能自动提交更改。但我没有找到。

OleDbConnection conn = new OleDbConnection(@"Provider = Microsoft.ACE.OLEDB.12.0; Data Source =Database2.accdb");
string query = "INSERT INTO [TestTable] ([Test_Name], [Test_Number]) VALUES (?, ?)";
try
{
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = query;
cmd.Parameters.AddWithValue("Test_Name", list_all_meters[0][0].Name);
cmd.Parameters.AddWithValue("Test_Number", list_all_meters[0][0].Value);
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("An Item has been successfully added", "Caption", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
}catch(Exception ex)
{
Debug.WriteLine(ex.Message);
}

看起来问题是我设置了数据库"复制到输出目录";改为"始终复制",这会在每次运行程序时覆盖我的更改。如果Newer修复了问题,则将其更改为Copy。

最新更新