我在通用Windows APP中有一个SQLite数据库,并且有多种类型(bool,int和Uint64)。我需要通过ID返回表格中的所有值。
// Id Module
[PrimaryKey]
public int id { set; get; }
// Fix comm state
public bool commState { set; get; }
// Fix home sensor state
public bool homeSensor { set; get; }
// Fix up sensor state
public bool upSensor { set; get; }
// Fix down sensor state
public bool downSensor { set; get; }
// Fix actual tier position
public int actualTier { set; get; }
// Fix actual step of encoder
public UInt64 encodPosition { set; get; }
我尝试通过List返回它,但我想我不能用不同的类型返回。
从SQLite DB一起返回这些值的最佳方法是什么?
感谢您的帮助。
答案 0 :(得分:0)
您可以使用Entity Framework返回所需的对象。这是一个将引导您完成整个过程的教程:
https://erazerbrecht.wordpress.com/2015/06/11/sqlite-entityframework-6-tutorial/
如果你想使用ADO.NET,这里有一个方法可以返回一个DataSet(使用Sqlite.Net):
private static DataSet ExecuteDataset(string DBLocation, string query)
{
var conn = new SQLiteConnection("Data Source=" + DBLocation + ";Version=3;");
DataSet ds;
try
{
conn.Open();
ds = new DataSet();
var da = new SQLiteDataAdapter(query, conn);
da.Fill(ds);
}
catch (Exception)
{
throw;
}
finally
{
conn.Close();
}
return ds;
}
答案 1 :(得分:0)
MethodMan有助于解决问题。
我创建了一个对象:
class objModel
{
// Id Module
public int id { set; get; }
// Fix comm state
public bool commState { set; get; }
// Fix home sensor state
public bool homeSensor { set; get; }
// Fix up sensor state
public bool upSensor { set; get; }
// Fix down sensor state
public bool downSensor { set; get; }
// Fix actual tier position
public int actualTier { set; get; }
// Fix actual step of encoder
public UInt64 encodPosition { set; get; }
}
然后使用对象列表:
public List<objModel> getParameters()
{
var db = new SQLiteConnection(new SQLitePlatformWinRT(), pathDBLocal);
var sList = db.Table<ModuleDB>();
List<objModel> mList = new List<objModel>();
foreach (var item in sList)
{
mList.Add(item.objM);
}
return mList;
}
谢谢你们......:)