我正在Visual Studio 2015中编写一个C#WPF应用程序,用System.Data.SQLite创建sqlite数据库。
这是创建数据库的部分的摘录(还有其他地方使用。
connection = new SQLiteConnection(string.Format("Data Source={0};Version=3;", _databaseFile));
connection.Open();
string sql = "create table Battery(date INTEGER, level INTEGER)";
SQLiteCommand command = new SQLiteCommand(sql, connection);
command.ExecuteNonQuery();
... create some more tables
connection.Close();
我在调试器中运行我的应用程序,它创建数据库并将数据写入其中。退出后,我可以打开该数据库,查看内容,并按预期包含数据。
如果我再次在调试器中启动应用程序,我的数据库将被删除(如果缺少,则创建新数据库)。但是,如果没有我的任何输入,它将被删除。它在我的任何代码执行之前被删除,并且早在数据库代码连接到通信端口几秒钟之后就会被删除。我在App,xaml.cs中的OnStartup上放了一个断点,当我选择调试时它就在那里,当它到达断点时它就消失了。我已经尝试过选择进入'而不是跑步,而且也是这样。
如果我在开始之前复制数据库,并且在删除数据库之后,退出并将其复制到位,下一次它将再次删除该数据库,即使此时它还没有永远打开它。
如果我运行应用程序(因此它创建数据库),退出应用程序,退出visual studio 2015,重新启动visual studio 2015并再次运行应用程序,这次它不会删除数据库,而且所有都是很好,它使用它没有问题。
我想知道是什么原因导致数据库被删除,以防以后会给我带来麻烦。
显然我在制作数据库后退出VS2015有一个解决方法,如果我只是添加到现有数据库我不会遇到这个问题,但它让我担心VS2015与数据库有某种联系这可能会在以后引起我的问题。