访问数据库不更新与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)
{
...
}
}
当我启动我的应用程序,这工作得很好:
- 我选择用户id
- 我将数据存储在对象中,我显示用户名。然后修改用户的name属性。
- 保存到数据库
- 我再次选择相同的用户
- 我再次显示用户名:显示的值已更改,因此更新方法有效。
但是当我关闭我的应用程序并再次启动它时,它会显示旧值,然后显示新值,就像我没有做任何更改一样。我的代码有什么问题?
编辑:我发现了问题。我的.mdb文件位于//Assets/Database/,当我运行我的应用程序时,该文件被复制在bin/Debug/Assets/Databases/中。我应该如何更新原始文件?
EDIT (2): Solved!我可以提交更改到实际数据库,而调试c#在Visual Studio?
只是你可以改变连接字符串的路径来更新你的原始文件,但我不建议你这样做。我建议你在解决方案资源管理器中右键单击原始文件,选择属性,将"复制到输出目录"设置为"复制如果更新"