我还有个查看数据库里面的表问题,你看我的提问里面喽

随机数的问题(.net)我在做一个随机出题的模块!数据库里有20道题,我要随机出来6 个,Sql 语句应该怎么_百度知道
随机数的问题(.net)我在做一个随机出题的模块!数据库里有20道题,我要随机出来6 个,Sql 语句应该怎么
但是 在 数据库的查询语句里要怎么用呢int[] arr = getRandomNum(6, 1;递归; i &
while (n &lt, maxV &#47, int maxValue)
Random ra = new Random(unchecked((int)DateT重新随机获取;
int tmp = 0.N
} &#47.Length - 1)
tem += arr[i], ra);
for (int i = 0;/
return arrN
int[] arrNum = new int[num];= arr.Next(minValue, tmp, minV= arrN
public int[] getRandomNum(从1至20中取出6个互不相同的随机数
int i = 0;
while (i &lt.Ticks)),
string tem = &quot。
getNum(arrN
public int getNum(int[] arrN&#47, int minV&#47, int minValue, &#47, maxValue), maxValue), Random ra)
int n = 0;
arrNum[i] = getNum(arrN利用循环判断是否有重复
tmp = ra, maxV num-1。
n++, int maxValue,ra);&quot, 20).ToString(),我要随机出来6 个(也可能是更多的题).Length - 1)
if (arrNum[n] == tmp) /
}现在 我可以生成随机数了;&#47:如果取出来的数字和已取得的数字有重复就重新随机获取;
i++;; i++ ) {
tmp = ra, minValue.Next(minValue?数据库里有20道题
我用的是三层架构,Person&quot,S
strSselect Id.Append(&quot,ChooseD,imageU
return DbHelperSQL.ToString()).Query(strSql,Question_TypeId;&#47.Append(&quot,Question,ChooseB; 获得 所有数据;
public DataSet GetItem_PoolList()
StringBuilder strSql = new StringBuilder(),ChooseC,A FROM Item_Pool &quot/),ChooseA
提问者采纳
其中ID为表的主键,也可以是其他排序字段MySql你用的什么数据库:Select TOP 6 * From TABLE Order By NewID(); //Access:Select TOP 6 * From TABLE Order By Rnd(ID) ,不同的数据库查询语句是不一样的SQL Server
我用的是 sql 2005
这个 Order By NewID();
这个 办法 生成的题目有重复的,怎么样可以不重复??
这个重复是没有办法控制的,毕竟你要随机生成嘛你不是同一次生成有重复的吧?你可以每次生成题目后把题目ID记下来Select TOP 6 * From TABLE where id not in(你记下来的id) Order By NewID();
是同一次 生成的有重复,呵呵。我要怎么去记录每次生成的ID 呢??请赐教!!!
如果是同一次生成有重复,你改成这样试试Select TOP 6 distinct * From TABLE Order By NewID();就是加上distinct
呵呵,不好意思,搞错了, 应该不是一次生成的,我要怎么办??嘎嘎。 我是在 前台用GridView 控件,每次只显示 一条 问题。 但是我点击”下一道“的时候,就会在此调用数据库的查询语句。结果就出现了“相同”的题了??
把你每次获取到得题目id保存下来如viewstate中,id间用逗号隔开(这样在sql语句中可直接使用)再用Select TOP 1 * From TABLE where id not in(你记下来的id) Order By NewID();试试不过好像每次只查询一道题时,会丧失随机效果PS:如果你每次只显示一道题,用GridView 控件太浪费了
但是我的SQL 语句都是写在 数据访问层的类里面, 这要还能用viewstate吗?好像不能了吧!还有要是不用GridView 哪我应该用什么方法来实现这个随机出题的 页面呢??呵呵~~!给点思路!!等我解决了这个问题 会把你的答案“采纳最佳的”嘎嘎!!
viewstate是放在你的页面上的,通过传参传到DAL,这应该没问题吧最好用Session或cookie吧,viewstate重新打开页面后会消失如果页面上只显示题目的话,一个label就可以了如果东西比较多,可以用DataList画模板
我要实现的是这种的~我的思路是页面用GridView显示, 分页用的是”PagedDataSource“ 这个在后台进行绑定分的。。页面上只显示道题,因为是用的 PagedDataSource 所以每次点击“下一道”的时候都会在从新上数据库里在查询一次,这样就导致了会有重复题出现。给我一个总体的思路把?我快疯了~~~~~~~!!!!!!!
1、你可以把数据库查询出来的数据先保存起来(最好写入缓存中),然后让PagedDataSource 绑定保存的数据源,这样就不会每次都查询数据库了2、还是记录已选的题目,传参到DAL的SQL语句里暂时没想到更好的解决办法,推荐第一种个人觉得解决思路应该是在PagedDataSource如何绑定固定数据源上
提问者评价
你的方法很好,我学到了很多东西,谢谢~!希望你可以经常来我这看看,我的问题很多,嘎嘎
来自团队:
其他类似问题
为您推荐:
其他2条回答
232,32select * from table where id in(你选出来的数)你选出来的随机数用逗号分割组成字符串如:1,12,232然后用我的语句就可以了
select * from table where id in(你选出来的数)
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁> 大家来讨论一个数据库设计的问题最近在一个公司兼职,看他们的数据库设计有很多冗余。比如说一个表中有了
大家来讨论一个数据库设计的问题最近在一个公司兼职,看他们的数据库设计有很多冗余。比如说一个表中有了
lanbing0me & &
发布时间: & &
浏览:131 & &
回复:4 & &
悬赏:0.0希赛币
大家来讨论一个数据库设计的问题最近在一个公司兼职,看他们的数据库设计有很多冗余。比如说一个表中有了用户id还有用户名,当然这样的冗余还很多了。他们说加冗余可以提高查询速度,我也这么认为的。但是我们学习数据库的时候,说数据库的设计最好要达到第三范式,这和实际工作中不是冲突了吗?
我想请教一下大家,对这个问题的看法。
有时为了提高速度,也适当的增加冗余这段,这种以空间换时间的做法也值得提倡,但冗余字段太多了也不好
lanbinhua & &
& & (0)(0)把握度吧,适当的冗余在现实中也是允许的。
lanbinming & &
& & (0)(0)有写是必须要的,用空间换时间
你写查询的时候用ID,但是客户要求看到的是NAME
问题出来了,如果没有冗余就要表关联,就会降低速度,那不如加个字段NAME少个关联查询出来
lanbo992 & &
& & (0)(0)严格满足三范式的结构设计,是最省空间的设计,拥有最高的空间效率,但是数据库需要满足各种复杂需求综合考虑空间\时间效率,所以必须要有足够冗余来满足查询/数据覆写等需求,所以三范式是一种设计原则,而不是必须规则,系统设计必须为业务需求服务.lanbingye & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&查询日期时,要用#,而不是&,即'*/*/04'换成#*/*/04#
您的举报已经提交成功,我们将尽快处理,谢谢!
Matlab与Access数据库编程指南
http://blog.csdn.net/pitt_xiong/article/details/7775652
版本不同, 现在Access数据库一般是2000版本的,对应的驱动是 Jet4.0,但你连接数据库时很可能选用的是Jet3.51,所以不能识别, 选择Jet4....
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'delphi问题。我数据库中有一个数据表,第一个字段是[编号] [varchar] (15) NOT NULL ,表中暂时无数据插入_百度知道
delphi问题。我数据库中有一个数据表,第一个字段是[编号] [varchar] (15) NOT NULL ,表中暂时无数据插入
但是有个资料上提供的方法是; if adoquery1;999 then maxC
num.SQL。第一个插入的编号就是0000001我想对这个字段弄一个编号规则.RecordCount&gt。急啊;);
maxC);0'+inttostr(num);999999 then maxC.O最大编号&#39,当表中还没有插入数据的时候.Add(':7位数字编号
temp:=inttostr(num).AsString);99999 then maxC99 then maxClinic:=&#39:=trim(adoquery1;+inttostr(num):=&#39:adoquery1;
if num&gt。;000&#39:=strtoint(temp)+1:=&#39:='9999 then maxC/0 then/;编号规则;
if num&gt:='
if num& adoquery1;9 then maxC0000&#39。求解:=‘00000'+inttostr(num);10 then maxClinic,比如7位数字;
if num&gt.RecordCount&gt,adoquery1。.fieldbyname(&#39。第一次插入数据是该怎么让判断语句执行else的部分呢,返回的是NULL;select max(编号) 最大编号 from数据表&#39:=’00';
if num&+inttostr(num);0是成立的;+inttostr(num),但现在的问题是;+inttostr(num)。。谢谢
提问者采纳
asstring&lt你用max(编号)。值是NULL;0) and (adoquery1;最大编号&#39.fieldbyname(&#39,在adoquery1。你可以多一个判断;&#39。if (adoquery1,求出来的recordcount是=1的;);0处多个条件.RecordCount&gt.RecordCount&&&#39
提问者评价
很有用。谢谢!
其他类似问题
为您推荐:
varchar的相关知识
其他1条回答
:=&#39.fieldbyname(&#39,如果adoquery1;&#47:=copy(&#39:=strtoint(temp)+1.IsEmpty)
&#47没用过delphi的数据库部分的东西;if not ( temp=nil
then adoquery1;0总是成立的话.Open,7-length(inttostr(num)))+inttostr(num),1:=trim(temp).AsS maxC我不确定delphi空值比较是不是这样的;,很久没用过了自己确认一下begin temp,程序无非改成这样adoquery1;;最大编号' num:=adoquery1;).RecordCount&; end else
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 数据库里面的date类型 的文章

 

随机推荐