从String中提取CheckedListBox

问题描述 投票:0回答:2

首先 - 我知道根据这个有一些帖子,但我似乎不理解“教程”

基本上我正在尝试做的是用一个来自MYSQL数据库的字符串中的数据来提供Checkedlistbox

ListBox allready包含所有可检查值,现在我只想让字符串告诉checkedlistbox它应该检查哪些项目。

我的字符串/数组..不知道正确的定义...(示例)看起来如下:“B,BE,C1E,”(Drivinglicence类型)

我真的想分享我目前关于这个问题的工作,如果我现在第10次没有抓到所有东西,因为我真的搞砸了我的想法。

我会高度重新指责任何指示我方向的提示,因为我现在感到迷茫

编辑:哦,是的,我使用c#btw

c# checkedlistbox
2个回答
1
投票

“解”

这不是我的问题的解决方案,但我想分享我的解决方法。

我将可检查项的每个可能组合添加到db请求中,询问db条目是否是这些组合之一(例如代码中的示例)


MySqlCommand führerscheinab = conn.CreateCommand();
            führerscheinab.CommandText = "SELECT count(*) FROM bewerber WHERE id = '" + textBoxrecruitingid.Text + "' and führerschein = 'A,B,'";
            string countab = führerscheinab.ExecuteScalar().ToString();

            MySqlCommand führerscheinabe = conn.CreateCommand();
            führerscheinabe.CommandText = "SELECT count(*) FROM bewerber WHERE id = '" + textBoxrecruitingid.Text + "' and führerschein = 'A,BE,'";
            string countabe = führerscheinabe.ExecuteScalar().ToString();

            MySqlCommand führerscheinac1 = conn.CreateCommand();
            führerscheinac1.CommandText = "SELECT count(*) FROM bewerber WHERE id = '" + textBoxrecruitingid.Text + "' and führerschein = 'A,C1,'";
            string countac1 = führerscheinac1.ExecuteScalar().ToString();

            MySqlCommand führerscheinac = conn.CreateCommand();
            führerscheinac.CommandText = "SELECT count(*) FROM bewerber WHERE id = '" + textBoxrecruitingid.Text + "' and führerschein = 'A,C,'";
            string countac = führerscheinac.ExecuteScalar().ToString();

            MySqlCommand führerscheinac1e = conn.CreateCommand();
            führerscheinac1e.CommandText = "SELECT count(*) FROM bewerber WHERE id = '" + textBoxrecruitingid.Text + "' and führerschein = 'A,C1E,'";
            string countac1e = führerscheinac1e.ExecuteScalar().ToString();

剩下要做的就是为每个结果创建一个if句子,例如:

if (countab == 1)
{
 check a and b
}
else if (countabe == 1)
{
 check a and be
}
else if ( ... and so on

不是我想要的解决方案,并且肯定不是最好的资源,但是是啊..它工作^^


1
投票

真实的声音

因为我对我的最后一个“解决方案”不满意,我尝试了更多,最后使用了这个:

MySqlCommand führerscheinstring = conn.CreateCommand();
            führerscheinstring.CommandText = "SELECT führerschein FROM bewerber WHERE id = '" + textBoxrecruitingid.Text + "'";
            string stringführerschein = führerscheinstring.ExecuteScalar().ToString();
            char[] charSeparators = new char[] { ',' };
            string[] result;

            result = stringführerschein.Split(charSeparators, StringSplitOptions.None);

            foreach (string entry in result)
            {
                if (entry == "A")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(0,true);
                }
                else if (entry == "B")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(1, true);
                }
                else if (entry == "BE")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(2, true);
                }
                else if (entry == "C1")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(3, true);
                }
                else if (entry == "C")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(4, true);
                }
                else if (entry == "C1E")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(5, true);
                }
                else if (entry == "CE")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(6, true);
                }
                else if (entry == "D1")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(7, true);
                }
                else if (entry == "D")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(8, true);
                }
                else if (entry == "D1E")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(9, true);
                }
                else if (entry == "DE")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(10, true);
                }
                else if (entry == "L")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(11, true);
                }
                else if (entry == "T")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(12, true);
                }
                else if (entry == "ADR")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(14, true);
                }
                else if (entry == "ADR Tank")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(15, true);
                }
                else if (entry == "Module vorhanden")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(16, true);
                }
                else if (entry == "Fahrerkarte vorhanden")
                {
                    checkedListBoxrecruitingführerschein.SetItemChecked(17, true);
                }
                else
                {
                }
            }

分配分配器char

char[] charSeparators = new char[] { ',' };

选择要检查的内容(17是项目ID(从0开始)true表示将检查项目)

checkedListBoxrecruitingführerschein.SetItemChecked(17, true);
© www.soinside.com 2019 - 2024. All rights reserved.