2015-06-12 1 views
2

Мне нужно запустить sql-запрос в 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>(); 
} 

И вар результат окончательный получить результат вашего желания запроса.

Надеюсь, это будет полезно для вас.

+0

Я отредактировал мой вопрос. Пожалуйста, взгляните на отредактированный вопрос. – tuhin

+0

@tuhin Я предоставляю такие же, как это ... У вас есть общий класс модели для вашего конкретного экрана или вашей операции ... В моем примере у него может быть больше свойств, если требуется –

+0

есть ли шанс получить список, не создавая никаких модель? Я имею в виду, как вы делали «YourModelClass»? – tuhin

Смежные вопросы