0

SQLite Metro と Windows 8 を使用して "IF NOT EXISTS" テーブルを作成できません。"db" を application.local フォルダーにコピーすると、レコードを追加、編集、削除できます。データベースは作成されますが、テーブルは作成されません。外部ツールで DDL を確認したところ、正しく表示されます。
以下は私のコードです:

private void InitData()
    {
        ListBox1.Items.Clear();

        Database db = new Database(Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "bppro.db"));

        Statement stm;
        stm = db.PrepareStatement("CREATE TABLE IF NOT EXISTS vitals (_id integer primary key autoincrement, creationdate text,weight text,pulse text,sys text,dia text");
        stm.Execute();
        stm.Dispose();

        string temp = System.DateTime.Now.Ticks.ToString();

        byte[] binaryData = new byte[100];
        stm = db.PrepareStatement("INSERT INTO vitals (creationdate,weight,pulse) VALUES (?,?,?)");
        stm.BindParamText(1, System.DateTime.Now.ToString());
        stm.BindParamInt(2, 35);
        stm.BindParamInt(3, 60);
        stm.Execute();
        stm.Dispose();

        long insertedRowId = db.LastInsertRowId;

        stm = db.PrepareStatement("SELECT * from vitals");
        while (stm.GetNextRow())
        {
            string createdate=stm.GetTextAt(1);
            string weight = stm.GetTextAt(2);
            string pulse = stm.GetTextAt(3);
            ListBox1.Items.Add(createdate.ToString()+"  "+weight.ToString()+"  "+pulse);
        }
        stm.Dispose();
   }

ありがとう、助けや指針をいただければ幸いです。

4

1 に答える 1

0

これは Windows ストア アプリですか? その場合、File IO API が変更されたため、SQLite の WinRT バージョンを使用する必要があります。

ここで同様の質問に対する私の回答を参照してください: https://stackoverflow.com/a/14469080/68230

于 2013-01-27T19:42:40.230 に答える