Uso SQLite desde la aplicación de Windows y ahora estoy desarrollando en Xamarin una aplicación portátil, así que estoy usando el complemento sqlite net pcl y tengo muchos problemas para entender cómo funciona.
Tengo una tabla creada por lo siguiente:
public class Config { public string IP { get; set; } [SQLite.Net.Attributes.Default(true, "Client 2")] public string ID { get; set; } }y para crear la tabla:
db.CreateTable<Model.Config>();Problema: ahora quiero seleccionar el valor en la columna ID y hago lo siguiente:
List<string> hhid = db.Query<string>("select ID from Config",null); Obtengo esta excepción: "Object reference not set to an instance of an object"
¿Cómo puedo hacer una selección simple para encontrar este campo?
gracias por cualquier consejo
Esperando que esto sea útil para alguien en mi lugar...
Entre corchetes (<>) va el nombre de la tabla:
db.Query<TableName>("select * from ...."); var list = db.Query<MyTableName>("select * from MyTableName"); var list = db.Query<MyTableName>("select * from MyTableName where lastname=? and firstname=?", lastnameValue, firstNameValue);La respuesta aceptada realmente no ayuda si tiene una asignación personalizada para el nombre de las tablas. El nombre de la tabla "Sql" se puede encontrar en tiempo de ejecución accediendo al mapeo de tipos.
Aquí un método de extensión
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; } }