关于带逻辑的问卷调查的问题

hp_soft 2012-06-08 02:33:49
数据库 问题表 和选项表
CREATE TABLE [Question](
[r_id] [bigint] IDENTITY(1,1) NOT NULL,
[r_items_id] [bigint] NOT NULL,
[r_Topic] [text] NOT NULL,
[r_order] [int] NULL

CREATE TABLE [QuestionOption](
[r_id] [bigint] IDENTITY(1,1) NOT NULL,
[r_Question_id] [bigint] NOT NULL,
[r_OptionName] [varchar](200) NOT NULL,
[r_NextQuestion] [bigint] NOT NULL

想在页面首次加载的时候,一次性读取所属项目下的所有问题和选项,不知道读过来的数据放在哪里,怎么放?放进去了如何一题题取出来,求高手给点思路
...全文
105 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yibey 2012-06-08
  • 打赏
  • 举报
回复
内存里构建对象啊。对象结构比如

ID, OptionName , 【object】 QuestionAnswer,[object]next_Question
__天涯寻梦 2012-06-08
  • 打赏
  • 举报
回复
两个字典
第一个 问题字典,r_id 是键,其余的是值
第二个 选项字典,r_Question_id + r_OptionName 是键,r_NextQuestion是值

开始显示第一个 问题字典 的第一个值,根据回答结果,将 r_id 和选择的项组合起来到第二个 选项字典 里查找,得出 r_NextQuestion,再把 r_NextQuestion 放到 第一个 问题字典 里查找,得出下一个要问的问题
ohkuy 2012-06-08
  • 打赏
  • 举报
回复
放在DataSet中
hp_soft 2012-06-08
  • 打赏
  • 举报
回复
之前的做法是读取一题 然后加载选项进来 然后根据跳转ID去读下一题 然后再加载选项。但是这样的做法就是楼上说的频繁访问数据库 想把所有的问题和选项先全部加载到页面上来(隐藏)然后再进行逻辑跳转,现在不知道放什么容器里
bdmh 2012-06-08
  • 打赏
  • 举报
回复
可以先读出 Question放到datatable或者其他形式的数据源,比如List中,每当读取一个题时,再去取得Option,当天这个Option也可以提前加载到内存,那样不必频繁访问数据库,就是牺牲点空间
ohkuy 2012-06-08
  • 打赏
  • 举报
回复
这还要个什么思路?
直接用ADO.net读取不就行了

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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