2015-06-12 20 views
2

我必須在sqllite db中運行sql查詢並獲取匿名結果。 我寫了下面的代碼。通過在Sqllite數據庫中爲windows phone創建匿名類型列表

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。

我不能用一個新的類,每次查詢(連接)

+0

什麼是「不執行」?錯誤,例外,不正確的結果? – artm

+0

當我用對象查詢(下面的代碼) – tuhin

回答

1

創建一個模型類爲您的方面如下您選擇字段:

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; 
     } 
    } 
} 

然後下面的代碼尖晶石,用於獲取數據:你的願望曲

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結果最終獲取的結果紅黴素。

希望這對你有所幫助。

+0

我編輯了我的問題。請看看編輯過的問題。 – tuhin

+0

@tuhin我已經提供了類似這樣的內容...您已經爲您的特定屏幕或您的操作生成了一般模型類...在我的示例中,如果需要,它可能有更多的屬性 –

+0

是否有機會獲得列表而不創建任何模型?我的意思是像你做的「YourModelClass」? – tuhin