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

标签 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>();
}


问题:


一旦以前使用过每个表,下面的代码将不会将每个表的主键重置为0(或起始编号)。此代码是否仅清空表,而不重置主键?


如何删除customers.sqlite(创建数据库),以便将所有主键重置为起始编号,如0。

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

最佳答案

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

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; }
}

关于sqlite - 如何重置主键并删除创建的SQLite Db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19269547/

相关文章:

android - 如何使用 SQLite 从图库中选择图片并另存为背景 ImageView

c# - 在没有 XNA 的 Windows Phone 中点击并拖动手势

c# - UDP 广播不能在 Windows 8 中的同一台机器上工作

python - 关于python的sqlite3中create table and transaction的问题

python-3.x - 为什么我们在 sqlite SELECT 语句中的变量后面需要一个逗号?

javascript - 智能手机屏幕尺寸是多少//智能手机预装了哪些编码语言?

delay - WP8 ScheduledActionService - 报警延迟

c# - 如何在 Windows 应用商店应用程序中添加 GetFileFromPathAsync 的路径

windows-runtime - 如何在 Windows 10 周年更新上获取唯一的设备 ID

c# - 在 vs2012 c# 中使用 sqlite 进行单元测试