1

私は Windows Phone 開発の初心者です。Android と iOS で開発されたアプリを開発する必要があります。Android と iOS で使用されていたのと同じ SQLite データベースを使用する必要があります。Windows phone で既存の SQLite データベースを使用することは可能ですか? はいの場合、どうすればいいですか?

4

1 に答える 1

0

sqlite の基本的なセットアップについては、このリンクを使用してください

最初にデータベース ファイルをプロジェクトに追加し、そのプロパティを COPYALWAYS と "CONTENT" に変更し、ローカル フォルダーにコピーして、このように sqlite を使用してデータベースに接続します。

 public static SQLiteAsyncConnection connection;
    public static bool isDatabaseExisting;
    public static async void ConnectToDB()
    {
        try
        {
            StorageFile storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync("DatabaseFinal.db");
            isDatabaseExisting = true;
        }
        catch
        {
            isDatabaseExisting = false;
        }
 if (!isDatabaseExisting)
        {
            try
            {
                StorageFile databaseFile = await Package.Current.InstalledLocation.GetFileAsync("DatabaseFinal.db");
                await databaseFile.CopyAsync(ApplicationData.Current.LocalFolder);
                isDatabaseExisting = true;
            }
            catch
            {
                isDatabaseExisting = false;
            }
        }

        if(isDatabaseExisting)
        connection = new SQLiteAsyncConnection(Path.Combine(ApplicationData.Current.LocalFolder.Path, "DelhiMetroDatabaseFinal.db"), true);
    }
}

}

これにより接続も作成され、データベースファイルからデータを取得するためにデータベースを使用するには、次のようなクエリを使用できます

  public List<dataclass> getdata(string line_id, ref Boolean isdata)
    {
        List<datadataclass> query = new List<datadataclass>();

        try
        {
            query = dal.connection.Table<dataclass>().Where(i => i._id == line_id).ToListAsync().Result;
            isdataclass = true;
            return query;
        }
        catch (NullReferenceException e)
        {
            isdataclass = false;
        }

        return query;
    }

データクラスには、データベースで定義された列としてのプロパティがあります。

class dataclass
{
    public string _id { get; set; }
    public string name { get; set; }
    public int location { get; set; }
}
于 2013-07-01T09:29:58.563 に答える