我必须在sqllite db中运行sql查询并返回匿名结果。我已经编写了下面的代码。
var userlist = new List < user_tbl > ();
var userlogin = new List < user_login_history > ();
string json = string.Empty;
using(var dbConn = new SQLiteConnection(DB_PATH)) {
userlist = dbConn.Query < user_tbl > ("select * from user_tbl");
userlogin = dbConn.Query < user_login_history > ("select * from user_login_history");
var listcom = (from n in userlist join ul in userlogin on n.id equals ul.UserID select new {
n.name, ul.LoginTime
}).ToList();
json = JsonConvert.SerializeObject(listcom[listcom.Count - 1]);
}
现在我想用 sql 编写连接查询并获取对象的匿名列表。
我试过
var templist = (from n in dbConn.Query<object>("select a.name,
b.LoginTime
from user_tbl a inner join user_login_history b on a.id=b.UserID")
select new
{
n.name,
n.LoginTime
}).ToList()
这是不执行的。有人可以帮助我解决这个问题吗?我正在使用Sqlite
。我不能为每个查询(连接)使用一个新类
创建一个模型类,如下所示:
public class YourModelClass
{
private string _Name;
public string Name
{
get { return _Name; }
set
{
_Name = value;
}
}
private string _LoginTime;
public string LoginTime
{
get { return _LoginTime; }
set
{
_LoginTime = value;
}
}
}
然后使用以下代码 spinet 获取数据:
using (var db = new SQLite.SQLiteConnection(connection string))
{
string query = "select a.name AS Name, b.LoginTime AS LoginTime from user_tbl a inner join user_login_history b on a.id=b.UserID";
SQLiteCommand cmd = new SQLiteCommand(db);
cmd.CommandText = query.ToString();
var result = cmd.ExecuteQuery<YourModelClass>();
}
和 var 结果最终获得您想要的查询结果。
希望这对您有所帮助。