1

我正在使用 Windows 8 发布预览版和 C#(VS 2012) 开发 Metro 应用程序,我从链接下载了 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);
        }
    }

通过使用下面的代码,我可以检索测试表中的所有记录

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 回答