C# C语言中写入MS Access数据库的问题

C# C语言中写入MS Access数据库的问题,c#,ms-access,C#,Ms Access,嘿,伙计们,我只是在练习用C#读写访问数据库的程序,我在写访问数据库的数据时遇到了一个问题,虽然我能够读取数据,即fetchin工作正常,但当我插入数据时,我的“ExecuteNonQuery”工作正常,我的意思是没有任何错误,但当打开访问数据库时,数据不在那里。。。。这是我要做的代码 //// Function For ExecuteNonQuery public static bool ExecuteNonQuery(string Query)

嘿,伙计们,我只是在练习用C#读写访问数据库的程序,我在写访问数据库的数据时遇到了一个问题,虽然我能够读取数据,即fetchin工作正常,但当我插入数据时,我的“ExecuteNonQuery”工作正常,我的意思是没有任何错误,但当打开访问数据库时,数据不在那里。。。。这是我要做的代码


        //// Function For ExecuteNonQuery
        public static bool ExecuteNonQuery(string Query)
        {

            OleDbCommand oledbCommand = new OleDbCommand(Query, connection);
            if (connection.State == ConnectionState.Open)
                connection.Close();
            try
            {
                connection.Open();
                if (oledbCommand.ExecuteNonQuery() > 0)
                    return true;
                else
                    return false;
            }
            catch (Exception)
            {
                return false;
            }
            finally
            {
                connection.Close();
            }
        }
下面的代码用于添加在按下“添加”按钮时触发的数据


        private void btnAdd_Click(object sender, EventArgs e)
        {
            simOperator.aim_network_name = txtAimNetNm.Text;
            simOperator.network_id = txtOxiNetID.Text;
            simOperator.network_name = txtNetName.Text;
            simOperator.pack_id = txtPackID.Text;
            simOperator.pack_name = txtPackName.Text;
            SimOperator.Add(simOperator);
            fillText();
        }
        public void fillText()
        {
            txtResult.Text = "";
            SimOperator[] simOperatorList = SimOperator.GetAllOperators();
            foreach (SimOperator sm in simOperatorList)
            {
                txtResult.Text += Program.operator_id + " " + sm.aim_network_name + " " + sm.network_name + " " + sm.network_id + " " + sm.pack_id + " " + sm.pack_name + "\r\n";
            }
        }
这里是“添加”函数

实际SQL查询是:

insert into SimOperator(aim_network_name,network_id,network_name,pack_id,pack_name) values('FiveNet','2563','FiveNet-Kurla','1236','5236'); App.config文件包含以下字符串:

add key="ConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\AutoMobileRecharge.mdb;User Id=; Password=;Persist Security Info=True" add key=“ConnectionString”value=“Provider=Microsoft.Jet.OLEDB.4.0;数据源=| DataDirectory | \AutoMobileRecharge.mdb;用户Id=;密码=;持久安全信息=True”
我没有得到的是,我在所有内部字段文本框旁边放了一个文本区域,这样我就可以看到插入的内容,所以当插入数据时,文本区域完美地显示了数据,但当我打开access db时,其中就没有数据了,当我关闭应用程序并再次运行它时,文本区域是空的…这听起来很奇怪。。有人遇到过这样的问题,请帮我解决一下。

您是在调试过程中这样做的吗?在这种情况下,请查看调试文件夹中是否有mdf文件,以及它是否包含刚才插入的数据。Vs在该模式下运行应用程序时,将一些文件复制到调试文件夹。如果我没记错的话,有一个选项可以告诉vs在调试时不要复制文件。。我不知道在调试时告诉你不要复制文件的选项,嗯,我会检查这个选项,然后thanx dude,让我们看看它是否有效。Stefano@hey调试文件夹中有一个.mdf文件,它包含数据。。你能解释一下为什么会发生这种情况吗?我的意思是在调试文件夹中创建另一个mdf文件?@FosterZ我想在开发过程中不会损坏数据。老实说,我不记得如何避免处理该文件,请尝试在项目中选择mdf文件(我认为您已将其添加到项目中),选择“属性”选项卡,然后(如果存在)将“复制本地”选项更改为false

static OleDbConnection connection = new OleDbConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
add key="ConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\AutoMobileRecharge.mdb;User Id=; Password=;Persist Security Info=True"