数据存储问题,求教前辈们

七爷 2011-08-15 07:04:43
是这样的,我想做一个调查的东西,比如运动项目您喜欢哪些,用户可以选择一个或多个,html代码:

<input type="checkbox" id="chk001" runat="server" value="1" />篮球
<input type="checkbox" id="chk002" runat="server" value="2" />足球
<input type="checkbox" id="chk003" runat="server" value="4" />排球
<input type="checkbox" id="chk004" runat="server" value="8" />台球
................

可能有好几十个呢,每个项目对应一个Value,我不想用字符串1,2,3这样的存储用户选择的ID,我想用一种int型方式存储:比如3就代表用户选择了“1”和“2”的,而7就代表用户选择了“1”,“2”,“4”....类似于这种方式存储,现在问题来了,我不知道怎么判断一个数,比如“7”不是2的完全平方,那么怎么把“7”拆分成“1”,“2”,“4”三个项目,如果是完全平方数,如“8”,那么只代表用户选择了一个项目?
小弟没找到好的方法,求大哥们指点指点.
...全文
54 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
七爷 2011-08-15
  • 打赏
  • 举报
回复
谢谢各位,方法我自己搞定了。还是谢谢大家
七爷 2011-08-15
  • 打赏
  • 举报
回复
6可以分解为2和4啊。
子夜__ 2011-08-15
  • 打赏
  • 举报
回复
用列表的方法很好啊

用你说的这种 自己规定一下吧。

比如一道题4个选项。 多选 1 2 3 4

最大也就是10

1 2 3 4 5 6 7 8 9 10

只有这10种情况 6的话就不好算了啊。

要算出组合。情况

列表形式比较简单。

七爷 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liuchaolin 的回复:]
太不效率了,原来简单的东西,被你复杂来做,完全无语

<input type="checkbox" name="cbk_xq" id="chk001" runat="server" value="1" />篮球
<input type="checkbox" name="cbk_xq" id="chk002" runat="server" value="2" />足球
<input type……
[/Quote]
前台和数据库插入的我知道怎么做,我的意思是存储数据库你是用1,2,4这种字符串存储的吗?
md5e 2011-08-15
  • 打赏
  • 举报
回复
太不效率了,原来简单的东西,被你复杂来做,完全无语

<input type="checkbox" name="cbk_xq" id="chk001" runat="server" value="1" />篮球
<input type="checkbox" name="cbk_xq" id="chk002" runat="server" value="2" />足球
<input type="checkbox" name="cbk_xq" id="chk003" runat="server" value="3" />排球
<input type="checkbox" name="cbk_xq" id="chk004" runat="server" value="4" />台球
....

Request.From["cbk_xq"]
如果选择篮球和台球,Request.From["cbk_xq"]=》1,4


七爷 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lmaohuanl 的回复:]
试试用CheckBoxList 循环第i位,这样去做判断

if (cbHabby.Items.Count == 0)
{
user_habby = "";
return;
}
else
{
for (int i = 0; i < cbHabby.Items.Count; i++)
{
if (cbHabby.Items[i].Select……
[/Quote]


大哥,可能我的思想还没有转换过来,是这样的,比如有个运动项目表,有3个字段ID,SportName,SportValue,
用户表,Name,SportValue,

用户表的SportValue是Int字段,要存储用户选择的项目,如果SportValue是7,那么就代表了运动项目表的3条记录。
我的设计思路就是这样的。
LMAOhuaNL 2011-08-15
  • 打赏
  • 举报
回复
试试用CheckBoxList 循环第i位,这样去做判断

if (cbHabby.Items.Count == 0)
{
user_habby = "";
return;
}
else
{
for (int i = 0; i < cbHabby.Items.Count; i++)
{
if (cbHabby.Items[i].Selected)
{
user_habby += cbHabby.Items[i].Text + "-";
}
}

}


上面是后台
下面是前台


<asp:CheckBoxList id="cbHabby"
CellPadding="5"
CellSpacing="5"
RepeatColumns="6"
RepeatDirection="Vertical"
RepeatLayout="Flow"
TextAlign="Right"
runat="server">
<asp:ListItem Value="userhabby">篮球</asp:ListItem>
<asp:ListItem Value="userhabby">看电影</asp:ListItem>
<asp:ListItem Value="userhabby">踢足球</asp:ListItem>
<asp:ListItem Value="userhabby">游戏</asp:ListItem>
<asp:ListItem Value="userhabby">其他(太多了)</asp:ListItem>
</asp:CheckBoxList>
七爷 2011-08-15
  • 打赏
  • 举报
回复
补充:每个项目都是2的平方数,除了第一个。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧