1

此代码将在以下位置创建数据库: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 (或起始编号),一旦它们中的每一个都被使用过。此代码是否仅清空表而不重置主键?

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

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

3 回答 3

1

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

using (var db = new SQLite.SQLiteConnection(localBaseConnection))
                {
                    db.DropTable<YourTableName>();
                    db.CreateTable<YourTableName>();
                    db.Dispose();
                    db.Close();
                }
于 2013-10-17T05:29:34.217 回答
0

使用此查询,您可以清除表然后重置自动增量列。

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; }
}
于 2013-10-09T11:49:14.700 回答
0

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

于 2013-10-09T11:12:44.207 回答