只有具有值时才能获取列名吗?

时间:2017-05-17 05:32:56

标签: c# sqlite

我很难获得我需要的代码。 我创建的代码可以获取我列出的所有列名称,无论是否有值。我唯一想要发生的是获取具有值(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;
    }

1 个答案:

答案 0 :(得分: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));
    }
}