SQLite net PCL - Simple select

20,990

Solution 1

Hoping this will be usefull to someone in my place...

Between the brackets (<>) goes the table name:

db.Query<TableName>("select * from ....");

Some examples that worked for me:

Simple select:

var list = db.Query<MyTableName>("select * from MyTableName");

Select with restrictions:

var list = db.Query<MyTableName>("select * from MyTableName where lastname=? and firstname=?", lastnameValue, firstNameValue);

Solution 2

The accepted answer doesn't really help if you have a custom mapping for the tables name. The "Sql" table name can be found at runtime accessing to the type mapping.

Here an extension method

public static class NativeConnectionExtension
{
    public static List<T> SelectAllFrom<T>(this SQLiteConnection cnn) where T : new()
    {
        var mapping = cnn.GetMapping<T>();
        var result = cnn.Query<T>(String.Format("select * from {0};", mapping.TableName));
        return result;
    }
}
Share:
20,990
Ignacio Gómez
Author by

Ignacio Gómez

Updated on April 03, 2020

Comments

  • Ignacio Gómez
    Ignacio Gómez about 4 years

    I use SQLite from windows app and now I am developing in Xamarin a portable app so I am using the plugin sqlite net pcl and I am having great trouble to understand how it works.

    I have a table that is created by te following:

    public class Config
        {
            public string IP { get; set; }
            [SQLite.Net.Attributes.Default(true, "Client 2")]
            public string ID { get; set; }
        }
    

    and to create the table:

    db.CreateTable<Model.Config>();
    

    Problem: Now I want to select the value in ID column and I do the following:

    List<string> hhid = db.Query<string>("select ID from Config",null);
    

    I get this exception: "Object reference not set to an instance of an object"

    How can I make a simple select to find this field?

    Thanks for any tip