为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串中获取 CheckedListBox

从字符串中获取 CheckedListBox

C#
catspeake 2022-11-22 16:38:36

首先 - 我知道有一些帖子根据这个但我似乎不明白“tutoruial”

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

ListBox 已经包含所有可检查的值,现在我只希望字符串告诉 checkedlistbox 它应该检查哪些项目。

我的字符串/数组 .. 真的不知道正确的定义...(示例)如下所示:“B、BE、C1E”(驾驶执照类型)

我真的很想分享我目前在这个问题上的工作,如果我现在不是第 10 次刮掉所有东西,因为我真的搞砸了我的想法。

我会高度推荐任何给我指明方向的提示,因为我现在感到迷茫

编辑:哦,是的,我正在使用 c# 顺便说一句


查看完整描述

2 回答

?
浮云间

TA贡献1553条经验 获得超3个赞

真正的解决方案


因为我对上一个“解决方案”不满意,所以我尝试了更多并最终使用了这个:


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[] charSeparators = new char[] { ',' };

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


checkedListBoxrecruitingführerschein.SetItemChecked(17, true);


查看完整回答
反对 回复 2022-11-22
?
扬帆大鱼

TA贡献1497条经验 获得超9个赞

“解决方案”


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


我将可检查项的所有可能组合添加到数据库请求中,询问数据库条目是否是这些组合之一(代码中的示例)



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


不是我想要的解决方案,而且肯定不是考虑到资源的最佳解决方案,但是是的..它有效^^


查看完整回答
反对 回复 2022-11-22
  • 2 回答
  • 0 关注
  • 10 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信