0

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

現時点では、管理者の ToString を変換して「True」に一致させていますが、それは非常に面倒なので、管理者をブール型に設定することをお勧めします。私は何をする必要がありますか?

4

2 に答える 2

2

インライン if 演算子を使用できます。例えば:

Admin = datarowviewUsers["Administrator"].ToString() == "True" ? true : false
于 2012-09-28T18:36:16.860 に答える
0

deepee1の回答に基づいて、ビット値を返していると思います。

Admin = datarowviewUsers["Administrator"].ToString() == "1" ? true : false;
于 2013-10-30T16:40:51.833 に答える