【问题标题】:DataTable DataView - Bit Value in DatabaseDataTable DataView - 数据库中的位值
【发布时间】:2012-09-28 17:49:39
【问题描述】:

我已在我的 C# 程序中将数据库表读入 DataTable,但在将包含位值的列分配给布尔值时遇到了一些问题。

到目前为止,这是我的代码:

            // Load and Sort Users DataTable
        DataTable datatableUsers = UserMethods.GetUsers().Tables["Users"];
        datatableUsers.DefaultView.Sort = "Name";

        // Filter Based on Search Box
        datatableUsers.DefaultView.RowFilter = "Name LIKE '%" + user + "%' OR Username LIKE '%" + user + "%'"; ;  
        DataView dataviewUsers = datatableUsers.DefaultView;

        // Loop Through Rows and Add UsersGrid to FlowLayoutPael
        foreach (DataRowView datarowviewUsers in dataviewUsers)
        {
            var UsersGrid = new UsersGrid
            {
                ID = (int)datarowviewUsers["ID"],
                Username = datarowviewUsers["Username"].ToString(),
                User = datarowviewUsers["Name"].ToString(),
                Admin = datarowviewUsers["Administrator"].ToString(),
            };
            flowlayoutpanelUsers.Controls.Add(UsersGrid);
            UsersGrid.WasClicked += UsersGrid_WasClicked;
        }

目前,我正在转换 Admin ToString 并匹配“True”,但这变得非常混乱,我更愿意将 Admin 设置为布尔类型。我需要做什么?

【问题讨论】:

    标签: c# datatable bit dataview


    【解决方案1】:

    您可以使用内联 if 运算符。例如:

    Admin = datarowviewUsers["Administrator"].ToString() == "True" ? true : false
    

    【讨论】:

    • 这给了我2个错误说:当前上下文中不存在名称'False',当前上下文中不存在名称'True'
    • @hshah 我不小心把 True 和 False 大写了……应该是真假。然后它应该可以工作......我将编辑修复。
    • Doh,我也应该发现这一点。谢谢你:)
    【解决方案2】:

    根据 deepee1 的回答,我认为它返回了一点价值。

    Admin = datarowviewUsers["Administrator"].ToString() == "1" ? true : false;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-16
      • 1970-01-01
      • 2018-02-04
      • 2017-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多