我被要求开发一个应用程序,其中一个成员可以选择一个计划,一个计划组合,所有计划,或者没有。
plan1, plan2, plan3, .... plan12
我跑了真相表,找出有多少可能性,结果是4096.(荒谬!)
我的计划是为每种可能性写一个if
声明:
if (plan1.Checked == true && plan2.Checked == false && ... && plan12.Checked == false){
// insert into into table test VALUES('Plan1')
}
等等!显然,必须有一种比这更好,更容易的方法。任何建议都会有帮助。谢谢大家。
答案 0 :(得分:1)
如果您使用CheckBoxList
或类似组件,这将是一种方法。
CheckBoxList checkBoxList = ....; // Just an example here
// You would add the different project names into the CheckBoxList
String message = "";
for (int i = 0; i < checkBoxList.Items.Count; i++) // Look at every project name
{
if (checkBoxList.Items[i].Selected) // See if it's selected
{
message += checkBoxList.Items[i].Text; // Add the name to the message
}
}
Put message in DB; // <-- Store the message into your database here
由于您只对选定的商品感兴趣,因此您根本不必处理未选择的商品。
注意:创建字符串的方法可能比这更好/更有效,您可以使用lambda表达式。这只是一个简单的方法。
答案 1 :(得分:0)
Andrew_CS答案是合适的,我更喜欢它,但这是另一种方式:
在所有复选框后面的代码中处理已检查的事件(使用一个事件,但允许所有复选框由其处理),并且根据发件人的不同,您可以加载所需的信息。
在复选框检查事件期间,您可能会使用Select语句为每个复选框加载相关信息(可能比for循环更容易理解!)