我正在使用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”的记录怎么办? 请帮助我,提前致谢。
答案 0 :(得分:0)
您应该能够使用Linq语句:
计数
var count = db.Table&lt; Test&gt;()。Count();
过滤
var data = db.Table&lt; Test&gt;()。其中(test =&gt; test.dept ==“CS”);