如何重置主键并删除创建的SQLite Db

时间:2013-10-09 10:31:48

标签: sqlite windows-phone-8 windows-runtime microsoft-metro winrt-xaml

此代码将在:LocalFolder

中创建数据库
string DBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "customers.sqlite");
using (var db = new SQLite.SQLiteConnection(DBPath))
{
    // Create the tables if they don't exist
    db.CreateTable<Customer>();
    db.CreateTable<Item>();
}

问题:

  1. 此处的代码不会将每个表的主键重置为0(或起始编号)。之后使用它们。此代码是否仅清空表但未重置主键?
  2. 如何删除customers.sqlite(已创建数据库),以便将所有主键重置为起始编号,如0。

    using (var db = new SQLite.SQLiteConnection(DBPath))
    {
        db.DeleteAll<Customer>();
        db.DeleteAll<Item>();
    }
    

3 个答案:

答案 0 :(得分:1)

此代码可以重置主键,但如果需要删除db,只需删除sqlite-db文件。

using (var db = new SQLite.SQLiteConnection(localBaseConnection))
                {
                    db.DropTable<YourTableName>();
                    db.CreateTable<YourTableName>();
                    db.Dispose();
                    db.Close();
                }

答案 1 :(得分:0)

要确保重置自动增量值,您可以删除数据库文件,也可以删除表。

答案 2 :(得分:0)

通过此查询,您可以清除表格&amp;然后重置自动增量列。

using (var db = new SQLiteConnection(ApplicationData.Current.LocalFolder.Path + "\\db.sqlite"))
{
    db.Query<your_table_name>("delete from your_table_name", "");
    db.Query<sqlite_sequence>("delete from sqlite_sequence where name = ?", "your_table_name");
}

您还必须添加此课程。

public class sqlite_sequence
{
    public string name { get; set; }
    public int seq { get; set; }
}