locked
problemas com buscas usando sqlite RRS feed

  • Pergunta

  • Tenho minha classe Controle que contém os seguintes atributos Id, PrimeiroDia(DateTime) e UltimoDia(DateTime).

    Quando eu faço as querys:

    para selecionar o controle naquele dia especifico

    DateTime data = DateTime.Today;
    DateTime primeiroDiaDoMes = new DateTime(data.Year, data.Month, 1);
    SQLiteCommand query = new SQLiteCommand(dbConn);
    query.CommandText = "SELECT * FROM Controle WHERE DataInicial = "+primeiroDiaDoMes;
    Controle c = query.ExecuteScalar<Controle>();

    e para retornar um único objeto

    SQLiteCommand query = new SQLiteCommand(dbConn);
    query.CommandText = "SELECT * FROM Controle WHERE Ativo = 1";
    Controle controle = query.ExecuteScalar<Controle>();

    ambas dão erro, alguém sabe me ajudar?

    sexta-feira, 26 de junho de 2015 17:03

Respostas

  • Olá.

    Você não irá conseguir, usando o SQLiteCommand.ExecuteScalar, ele serve somente para retornar tipos simples, int, string, etc..

    Instala o package sqlite-net, ele te dá suporte inclusive a linq, é fantástico e você poderá fazer isso :

    var db = new SQLiteAsyncConnection("SeuDatabase");

    var controle = await db.Table<Controle>().Where(c=>c.Ativo ==1).FirstOrDefaultAsync();

    Abraço,

    Alexandre Dias


    • Editado Alexandre Dias Simões segunda-feira, 29 de junho de 2015 14:08 Erros de acentuação
    • Sugerido como Resposta Cristopher C I_ segunda-feira, 29 de junho de 2015 14:22
    • Marcado como Resposta Felix Soares segunda-feira, 29 de junho de 2015 14:26
    segunda-feira, 29 de junho de 2015 14:07

Todas as Respostas

  • Bom dia,

    Qual erro?

    Atenciosamente,

    Roberto

    • Sugerido como Resposta Roberto AB Filho sexta-feira, 26 de junho de 2015 17:49
    • Não Sugerido como Resposta Roberto AB Filho sexta-feira, 26 de junho de 2015 17:49
    sexta-feira, 26 de junho de 2015 17:34
  • A first chance exception of type 'System.NotSupportedException' occurred in QuantoTenhoUniversal.WindowsPhone.exe
    sábado, 27 de junho de 2015 14:14
  • Olá.

    Você não irá conseguir, usando o SQLiteCommand.ExecuteScalar, ele serve somente para retornar tipos simples, int, string, etc..

    Instala o package sqlite-net, ele te dá suporte inclusive a linq, é fantástico e você poderá fazer isso :

    var db = new SQLiteAsyncConnection("SeuDatabase");

    var controle = await db.Table<Controle>().Where(c=>c.Ativo ==1).FirstOrDefaultAsync();

    Abraço,

    Alexandre Dias


    • Editado Alexandre Dias Simões segunda-feira, 29 de junho de 2015 14:08 Erros de acentuação
    • Sugerido como Resposta Cristopher C I_ segunda-feira, 29 de junho de 2015 14:22
    • Marcado como Resposta Felix Soares segunda-feira, 29 de junho de 2015 14:26
    segunda-feira, 29 de junho de 2015 14:07