访问数据库不更新与OleDb

本文关键字:OleDb 更新 数据库 访问 | 更新日期: 2023-09-27 17:50:31

这是我的更新方法

public void Update(string query, List<OleDbParameter> parameters)
        {
            OleDbCommand cmd = new OleDbCommand();
            OleDbTransaction transaction = null;
            query = "UPDATE " + query;

            foreach (OleDbParameter parameter in parameters)
            {
                cmd.Parameters.Add(parameter);
            }
            this._Connect();
            transaction = _connection.BeginTransaction();
            cmd.Connection = _connection;
            cmd.CommandText = query;
            cmd.Transaction = transaction;
            cmd.Prepare();
            int linesUpdated = cmd.ExecuteNonQuery();
            transaction.Commit();
            this._Disconnect();
        }

全类

 public class DBAdapter
    {
        private OleDbConnection _connection;
        private void _Connect()
        {
            this._connection = new OleDbConnection();
            _connection.ConnectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
            _connection.Open();
        }
        private void _Disconnect()
        {
            _connection.Close();
        }

        public void Update(string query, List<OleDbParameter> parameters)
        {
            ...
        }
    }

当我启动我的应用程序,这工作得很好:

  1. 我选择用户id
  2. 我将数据存储在对象中,我显示用户名。然后修改用户的name属性。
  3. 保存到数据库
  4. 我再次选择相同的用户
  5. 我再次显示用户名:显示的值已更改,因此更新方法有效。

但是当我关闭我的应用程序并再次启动它时,它会显示旧值,然后显示新值,就像我没有做任何更改一样。我的代码有什么问题?

编辑:我发现了问题。我的.mdb文件位于//Assets/Database/,当我运行我的应用程序时,该文件被复制在bin/Debug/Assets/Databases/中。我应该如何更新原始文件?

EDIT (2): Solved!我可以提交更改到实际数据库,而调试c#在Visual Studio?

访问数据库不更新与OleDb

只是你可以改变连接字符串的路径来更新你的原始文件,但我不建议你这样做。我建议你在解决方案资源管理器中右键单击原始文件,选择属性,将"复制到输出目录"设置为"复制如果更新"