问题
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
回答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);
回答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
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;
}
}
来源:https://stackoverflow.com/questions/30742167/sqlite-net-pcl-simple-select