2017-05-17 28 views
0

我很難得到我需要的代碼。 我創建的代碼可以獲得列出的所有列名稱,而不管它是否具有值。我只想發生的是獲得有價值的列名(1)。只有有值時纔可以獲得列名?

enter image description here

我有這樣的代碼:

internal static List<string> GetAllRoleTypeFromDatabase() 
    { 
     List<string> rolelist = new List<string>(); 
     using (var con = new SQLiteConnection(sqliteConnectionMain.connectionString)) 
     using (var cmd = new SQLiteCommand(con)) 
     { 
      con.Open(); 
      var _command = con.CreateCommand(); 
      var queryq = string.Format("SELECT * FROM tblUserRoleAccess"); 
      string commandText = queryq; 

      String sSQL; 

      sSQL = "SELECT * from tblUserRoleAccess"; 
      cmd.CommandText = sSQL; 

      var dr = cmd.ExecuteReader(); 
      for (var i = 1; i < dr.FieldCount; i++) 
      { 
       if (dr != null) 
       { 
        rolelist.Add(dr.GetName(i)); 
       } 
      } 
      con.Close(); 
     } 

     return rolelist; 
    } 
+0

什麼阻止您只是檢查各列你的應用程序代碼,看看它是否'NULL'? –

回答

2

閱讀讀者線(據我所知,只有一個行作爲一個結果)。
對於行檢查每一列,如果它的值是1(我用int,你應該使用真正的類型,即boolstring ...):

dr.Read(); 
for (var i = 1; i < dr.FieldCount; i++) 
{ 
    if (dr.GetFieldValue<int>(i) == 1) 
    { 
     rolelist.Add(dr.GetName(i)); 
    } 
} 
+1

不錯!做得好! – Jesson

相關問題