SQLite CreateTable已存在的数据库已被替换

SQLite CreateTable已存在的数据库已被替换,sqlite,Sqlite,通过在SQLite for Windows 8中调用CreateTable方法,擦除所有行并创建一个新表来替换已经存在的数据库。我怎样才能解决这个问题?要分析的代码如下: using(var db = new SQLite.SQLiteConnection(App.DBPath)) { db.CreateTable<ListasEntid>(); if (db.ExecuteScalar<int>("se

通过在SQLite for Windows 8中调用CreateTable方法,擦除所有行并创建一个新表来替换已经存在的数据库。我怎样才能解决这个问题?要分析的代码如下:

using(var db = new SQLite.SQLiteConnection(App.DBPath))
        {

            db.CreateTable<ListasEntid>();

            if (db.ExecuteScalar<int>("select count(1) from ListasEntid")==0)
            {
                db.RunInTransaction(() =>
                {
                    db.Insert(new ListasEntid() { Nome = "Lista", Eletros = "Teste" });
                });

            }
        }

不确定使用的是哪种语言,但如果可以执行原始SQL,则可以使用以下语法:

CREATE TABLE IF NOT EXISTS ListasEntid (nome text, eletros text);

这确保了表ListasEntid的存在不会影响您以前的任何数据。

感谢您的关注,但问题并不是专门针对CreateTable方法,而是在应用程序属性的“调试”选项卡的“应用程序配置”中,在选项“开始”框中标记为“Unistall”,然后重新安装我的软件包,删除所有文件总是初始化调试。

这看起来像SQLite的Qt接口。为此,有一种方法可以测试表是否存在,但我不记得它是什么。无论如何,肯定有一种方法可以进行测试,这样您就可以跳过创建。或者使用CreateTable,如果不存在,正如bdares建议的那样。我正在使用SQLite/C/Windows8应用程序来总结这个方法CreateTable声明:如果数据库中不存在,则执行一个CreateTable。它还会在表的列上创建任何指定的索引。它使用从指定类型自动生成的架构。稍后,您可以通过调用GetMapping访问此模式。我不明白,因为它重新创建了表,其中q它已经存在。