SQLite3为metro应用程序准备了语句

时间:2012-08-19 15:44:30

标签: c# sqlite windows-8 microsoft-metro windows-runtime

我正在使用Windows 8发布预览和C#(VS 2012)开发metro应用程序,我从link下载了SQLite 3.7.13并使用this程序成功地与我的应用程序集成,通过使用以下代码我可以创建表和插入数据

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中提供预处理语句? 例如:如果我想在我的表中找到dept“CS”的记录数,那么              如果我想要从我的表中只有dept“CS”的记录怎么办? 请帮助我,提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该能够使用Linq语句:

  • 计数

    var count = db.Table&lt; Test&gt;()。Count();

  • 过滤

    var data = db.Table&lt; Test&gt;()。其中​​(test =&gt; test.dept ==“CS”);