Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OleDbCommand.ExecuteOnQuery()不在ms access数据库中保存更改_C#_.net - Fatal编程技术网

C# OleDbCommand.ExecuteOnQuery()不在ms access数据库中保存更改

C# OleDbCommand.ExecuteOnQuery()不在ms access数据库中保存更改,c#,.net,C#,.net,我有.mdb数据库,代码如下: using (OleDbConnection connection = new OleDbConnection(myConnectionString)) { using (OleDbCommand cmd = connection.CreateCommand()) { cmd.CommandText = "UPDATE myTab SET col2 = @val1 WHERE col1 = @val2"; cmd.P

我有
.mdb
数据库,代码如下:

using (OleDbConnection connection = new OleDbConnection(myConnectionString))
{
    using (OleDbCommand cmd = connection.CreateCommand())
    {
        cmd.CommandText = "UPDATE myTab SET col2 = @val1 WHERE col1 = @val2";
        cmd.Parameters.AddWithValue("@val1", 0);
        cmd.Parameters.AddWithValue("@val2", -1);
        cmd.Connection.Open();
        cmd.ExecuteNonQuery();
        cmd.Connection.Close();
     }
}
我从数据库中获取数据,在gui程序中对其进行更改,然后将其保存在数据库中。更改会保存,但不会保存在数据库中(我不知道在哪里),所以当我运行程序时,更改数据,关闭程序,然后再次运行-更改仍然存在,但当我打开数据库时(不在程序中),不会保存任何更改,然后再次运行-所有更改都会消失。

PS:当我提交更改,然后多次运行程序时,所有更改也会消失,在(3-4次运行)

之后,很可能update语句的WHERE子句没有找到任何要更新的记录


update语句的WHERE子句很可能没有找到任何要更新的记录


当我们在VS的项目根目录中添加
.mdb
时,当更改结构时,VS默认删除调试文件夹中的
.mdb
文件并替换新文件;现在您可以更改此默认值:

1-右键单击
.mdb
文件并选择选项


2-当我们在VS的项目根目录中添加
.mdb
时,将
复制到输出目录
设置为
不复制
,当更改结构时,VS默认删除调试文件夹中的
.mdb
文件并替换新文件;现在您可以更改此默认值:

1-右键单击
.mdb
文件并选择选项


2-将
复制到输出目录
设置为
不复制

是否确定。调试文件夹中不替换mdb文件?(运行应用程序时)能否显示连接字符串?特别是,你要打开的数据库在哪里?@hamidrezamansouri-你可以把它作为一个答案发布。这是一个多副本,但查找起来太麻烦了。@hamid reza mansouri,事实上是这样,在调试文件夹中有一个已更改的db,因此,正如我所说的,它将所有更改保存在该文件夹中,但从另一个
connectionString=“provider=Microsoft.Jet.OLEDB.4.0;”+“data source=Resources\\myDataBase.mdb”获取所有数据
您确定调试文件夹中没有替换.mdb文件吗?(运行应用程序时)您能显示您的连接字符串吗?特别是,你要打开的数据库在哪里?@hamidrezamansouri-你可以把它作为一个答案发布。这是一个多重复制,但查找起来太麻烦了。@hamid reza mansouri,实际上是这样,在调试文件夹中有一个已更改的db,所以当我点击时,它将所有更改保存在该文件夹中,但从另一个
connectionString=“provider=Microsoft.Jet.OLEDB.4.0;”“+”数据源=Resources\\myDataBase.mdb”
“然后再次运行-更改保持”=所以WHERE看起来是OK的。“然后再次运行-更改保持”=所以WHERE看起来是OK的。