1

Windows 8 リリース プレビューと C#(VS 2012) を使用してメトロ アプリを開発しています。リンクから SQLite 3.7.13 をダウンロードし、この手順を使用してアプリと正常に統合しました。以下のコードを使用して、テーブルを作成し、データを挿入できます。

var dbpath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "test.db");
            using (var db = new SQLite.SQLiteConnection(dbpath))
            {
                db.CreateTable<Test>();
                db.RunInTransaction(() =>
                    {
                        for (int i = 0; i < 10; i++)
                        {
                            db.Insert(new Test() { id = i,dept = "CS", Firstname = "First" + i.ToString(), Lastname = "Last" + i.ToString() });
                        }
                    });                
            }

私の内部クラスをテストする場所

class Test
    {
        [AutoIncrement,PrimaryKey]
        public int id { get; set; }
        public string dept { get; set; }
        public string Firstname { get; set; }
        public string Lastname { get; set; }
        public override string ToString()
        {
            return string.Format("{0},{1}", Lastname, Firstname);
        }
    }

以下のコードを使用すると、Test テーブルのすべてのレコードを取得できます

var dbpath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "test.db");
            using (var db = new SQLite.SQLiteConnection(dbpath))
            {   
                var data = db.Table<Test>();                    
            }

だから私の質問は、SQLLite で準備済みステートメントをどのように与えることができるかということです。たとえば、テーブル内の部門「CS」のレコード数を見つけたい場合、およびテーブルから部門「CS」のみのレコードが必要な場合はどうすればよいでしょうか。よろしくお願いします。

4

1 に答える 1

0

Linqステートメントを使用できるはずです。

  • カウント

    var count = db.Table <Test>()。Count();

  • フィルタリング

    var data = db.Table <Test>()。Where(test => test.dept == "CS");

于 2012-08-19T16:06:11.430 に答える