访问数据库未使用OleDb进行更新

时间:2014-03-16 05:33:12

标签: c# visual-studio sql-update oledb

这是我的更新方法

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. 选择用户
  3. 我将数据存储在对象中,我显示用户的名字。然后我修改用户的名称属性。
  4. 我将其保存到数据库
  5. 我再次选择了同一个用户
  6. 我再次显示用户名:显示的值已更改,因此更新方法有效。
  7. 但是,当我关闭我的应用并再次启动它时,它会显示旧值,然后显示新值,就像我没有做任何更改一样。我的代码出了什么问题?

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

    编辑(2):解决了! Can I commit changes to actual database while debugging C# in Visual Studio?

1 个答案:

答案 0 :(得分:0)

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