2

我正在开发 Windows Phone 8 应用程序,我需要将它与 Sqlite 数据库连接。我正在关注链接下方的教程。 http://www.developer.nokia.com/Community/Wiki/How_to_use_SQLite_in_Windows_Phone

我收到错误,因为“tracker.exe 丢失并且找不到 Sqlite.winmd”。我错过了什么吗?为什么我收到此错误。在连接 Sqlite 和 Windows Phone 时,任何好的链接也都被接受,并有明确的描述。提前致谢。 在此处输入图像描述

4

2 回答 2

1

通过 Manage NuGet packages 在项目中添加 sqlite-net,您可以在项目中看到 Sqlite.cs 和 SqliteAsync.cs 文件。

第 1 步:创建一个类,该类在您的数据库中称为表。

    class TableName
    {
        [PrimaryKey, AutoIncrement]
        public int IndexNo { get; set; }
        public String Name { get; set; }
        public String User { get; set; }
        public String LastEdit { get; set; }
    }

步骤 2:创建数据库文件,将其与 SQliteConnection 连接并创建表

    private async void CreateDatabase()
    {
        bool isDatabaseExisting = false;
        //Checking if database already exists
        try
        {
            Windows.Storage.StorageFile storagefile = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("Database.sqlite");
            isDatabaseExisting = true;
        }
        catch
        {
            isDatabaseExisting = false;
        }
        //if not exists then creating database
        if (!isDatabaseExisting)
        {
            String str = System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Database.sqlite");
            SQLiteConnection conn = new SQLiteConnection(str);
            conn.CreateTable<TableName>();

        }
    }

第 3 步:执行查询

  1. 插入值

    conn.Execute("insert into TableName(Name,User,LastEdit) values(?,?,?)",val1, val2, val3);
    
  2. 获取数据库

获取所有数据使用

    var result = conn.Table<TableName>().ToList();

要获得一些相关数据,请使用

    var result = conn.Table<TableName>().Where(x => x.User == "abc").ToList();
    foreach (var item in result)
    {
      var name=item.Name;
      var user=item.User;
    }

请记住,当您想要执行影响数据库的查询时,请使用 conn.Execute 语句,并且当您想要从数据库中获取值时,您应该使用 conn.Table 查询,只是为了方便。您将在 SQlite 库中获得更多方法。还记得使用 SQlite;

欲了解更多详情或样品,请访问此处

祝你好运

于 2013-06-27T10:02:34.703 回答
0

你为什么不使用 sqlite-net 版本 1.0.7

在此处输入图像描述

于 2013-06-25T12:38:36.073 回答