从字符串中获取 CheckedListBox
Feed CheckedListBox from String
首先 - 我知道有一些 post 根据这个但我似乎不明白 "tutoruial"
基本上我想做的是用来自 MYSQL 数据库
的字符串中的数据提供一个 Checkedlistbox
ListBox 已经包含所有可检查的值,现在我只想要字符串告诉 checkedlistbox 它应该检查哪些项目。
我的 string/array .. 真的不知道正确的定义...(示例)如下所示:"B,BE,C1E,"(驾驶执照类型)
我真的很想分享我目前在这个问题上的工作,如果我现在已经第 10 次抓取所有内容,因为我真的搞砸了我的想法。
我会高度推荐任何给我指明方向的提示,因为我现在感到迷茫
编辑:哦,是的,我正在使用 C# 顺便说一句
"SOLUTION"
这并不是我的问题的真正解决方案,但我想分享我的解决方法。
我将可检查项的所有可能组合添加到数据库请求中,询问数据库条目是否是这些组合之一(代码中的示例)
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
不是我想要的解决方案,而且肯定不是考虑到资源的最佳解决方案,但是是的..它有效^^
真正的解决方案
因为我对我的最后一个 "solution" 不满意,我尝试了更多并最终使用这个:
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);
首先 - 我知道有一些 post 根据这个但我似乎不明白 "tutoruial"
基本上我想做的是用来自 MYSQL 数据库
的字符串中的数据提供一个 CheckedlistboxListBox 已经包含所有可检查的值,现在我只想要字符串告诉 checkedlistbox 它应该检查哪些项目。
我的 string/array .. 真的不知道正确的定义...(示例)如下所示:"B,BE,C1E,"(驾驶执照类型)
我真的很想分享我目前在这个问题上的工作,如果我现在已经第 10 次抓取所有内容,因为我真的搞砸了我的想法。
我会高度推荐任何给我指明方向的提示,因为我现在感到迷茫
编辑:哦,是的,我正在使用 C# 顺便说一句
"SOLUTION"
这并不是我的问题的真正解决方案,但我想分享我的解决方法。
我将可检查项的所有可能组合添加到数据库请求中,询问数据库条目是否是这些组合之一(代码中的示例)
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
不是我想要的解决方案,而且肯定不是考虑到资源的最佳解决方案,但是是的..它有效^^
真正的解决方案
因为我对我的最后一个 "solution" 不满意,我尝试了更多并最终使用这个:
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);