2017-03-13 80 views
-1

我有一個SQLite數據庫在通用的Windows應用程序,並具有多類型(BOOL,INT和答:64)。我需要通過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數據庫一起返回此值的最佳方法?

感謝您的任何幫助。

+0

是的,你可以作爲'VAR OBJ =新名單(){}'然後代碼 – MethodMan

+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; 
    } 

感謝球員... :)

0

你可以使用實體框架返回你所需要的對象。這是一個教程,將帶領您一路過關斬將:

https://erazerbrecht.wordpress.com/2015/06/11/sqlite-entityframework-6-tutorial/

如果你想使用ADO.NET,在這裏你必須將返回(使用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; 
    } 
+0

我忘了說這是通用Windows應用程序。 我想我不能使用數據集。對不起,如果我錯了... –