2017-05-17 100 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

相关问题