C# 一旦Windows窗体应用停止,SQLite数据库将不保存数据

C# 一旦Windows窗体应用停止,SQLite数据库将不保存数据,c#,visual-studio,sqlite,C#,Visual Studio,Sqlite,我一直在尝试将SQLite数据库用于Winform C#项目 .db文件保存在我的项目目录中,我的代码可以很好地访问它。如果我输入值,它就会工作,如果我输入与它应该输入的相同的it错误 一旦我停止Windows窗体程序并再次启动它,我输入的所有数据都将被清除 问题-如何确保保存.db文件中的数据。我想我错过了一个场景 参考代码。已解决 通过该工具添加Sqlite数据库。第一次插入后,您是否检查了.db文件上的修改日期?在重新运行应用程序时,是否可能是在复制文件?我注意到我的.db文件与我的项

我一直在尝试将SQLite数据库用于Winform C#项目

.db文件保存在我的项目目录中,我的代码可以很好地访问它。如果我输入值,它就会工作,如果我输入与它应该输入的相同的it错误

一旦我停止Windows窗体程序并再次启动它,我输入的所有数据都将被清除

  • 问题-如何确保保存.db文件中的数据。我想我错过了一个场景

参考代码。

已解决


通过该工具添加Sqlite数据库。

第一次插入后,您是否检查了.db文件上的修改日期?在重新运行应用程序时,是否可能是在复制文件?我注意到我的.db文件与我的项目位于同一目录中,这就是我的connectionstring所指向的。我在项目的调试文件夹中也有相同的db文件,那就是正在更新的文件。新问题,如何在解决方案内的调试中使用该文件,或者为什么它们不同时更新。可能重复:当我插入数据时,它会保存到以下数据库中:SQLLite\windowsformsap1\bin\Debug\demodab.db“但是,我的app.config文件使用连接字符串,因此当我选择时,它不会检索任何内容。可能尝试将连接字符串修改为
Data Source=demodab.db
 using (SQLiteConnection cnn = new SQLiteConnection(LoadConnectionString()))
            {
                cnn.Open();
                using (SQLiteTransaction transaction = cnn.BeginTransaction())
                {
                    using (SQLiteCommand cmd = new SQLiteCommand(cnn))
                    {
                        SQLiteParameter IDParam = new SQLiteParameter();
                        SQLiteParameter NameParam = new SQLiteParameter();
                      

                        cmd.CommandText = "INSERT into Person (ID, Name) VALUES (@ID, @Name)";
                        cmd.Parameters.AddWithValue("ID", 1);
                        cmd.Parameters.AddWithValue("Name", "Lewis");

                        i = cmd.ExecuteNonQuery();
                    }
                    transaction.Commit();
                    //cnn.Execute("insert into Person (ID, Name) values (1, 'Lewis')", person)                    
                    
                }
            }