易截截图软件、单文件、免安装、纯绿色、仅160KB

ACCESS和MSSQL 如何随机读取数据库记录

查询语句只要这样写,就可以随机取出记录了
SQL="Select top 6 * from Dv_bbs1 where isbest = 1 and layer = 1 order by newID() desc"
在ACCESS里
SELECT top 15 id from tablename order by rnd(id)
SQL Server:
Select TOP N * from TABLE Order By NewID()
Access:
Select TOP N * from TABLE Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select TOP N * from TABLE Order BY Rnd(Len(UserName))
MySql:
Select * from TABLE Order By Rand() Limit 10
SQL数据库有个newid函数,可以很方便的用SQL语句得到表中的随机数据。但access数据库没这么方便,虽然有个Rnd,可以通过“select top 10 * from tb order by rnd(id)”得到随机数据,可惜在VB中使用,产生的随机序列是一样的。
有人说在程序中加上Randomize初始化随机种子,那么这只说对了一半,在程序中简单的加上Randomize,是没作用的,道理很简单,Randomize不可能影响SQL语句中的rnd,那只不过是个字符串,SQL语句是放到jet中去执行的。
前些天在论坛上看到有人说用time,那么只用rnd(time)这样是不行的,rnd中必须要包含表中的一个字段(任意字段,当然是主键效果更好),测试下来,rnd(time+id)这样依然不行! 不过非常意外的是rnd(time-id)却成功了。为什么说意外,按我的理解,time在与数值做运算时,会转换成一个小于1的double,这样与ID(大于1的正值)做减运算的结果必然是一个负数,我们知道rnd如果用了负数种子,会产生相同的随机序列,这是文件加解密算法中常用到的方法,可在这儿却能得到正确的结果,到现在也没想通......
接下去,用rnd(time-id)继续测试你会发现,连续快速地查询下,会有问题,会出现二次或三次查询结果一样的问题。分析一下可以找到原因,rnd(number)中的number是个single,这样它会截断time-id这个运算结果double后面数字,这样快速查询时number这个值没改变,所以查询结果也没有改变。


相关文档:

解决Failed to access IIS metabase


原因:IIS没有注册
解决办法:
方法一:
在CMD中进入目录C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,运行aspnet_regiis
1、aspnet_regiis -ga administrator(administrator为当前用户)
2、aspnet_regiis -i (注册IIS)
3、iisreset /noforce (重启IIS)
 
操作详细:
C:\Documents and Settings\ ......

ASP.NET实现增删改查等功能(Access版)系统之五 更新

更新方法一,直接在GridView中来更新数据.
更新方法二,打开一个新的页面来更新数据.
//更新
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
 &nbs ......

用TSQL把Access的表导入到远程Sql Server

用TSQL把Access的表导入到远程Sql Server:
把access 的.mdb里t_itemList 表的数据插入到远程SqlServer的t_itemL1111111表里。
SELECT  top 10 *  INTO  t_itemL1111111 IN [ODBC] 
[ODBC;Driver=SQL Server; UID=jyb;PWD=jyb;Server=10.1.18.49;DataBase=所有合并;]
    &nb ......

恼人的 access jet 语法

昨晚在做Access数据库开发时遇到一个简单的模糊查询问题,在access2007里面可以查出来,但用C#2.0查询就是查不出来。
后来试出来了,原来 是jet语法的问题:
在Access中,模糊查询用 * 号,如 select * from T_PO where po_NO like '*8*'
但在C#程序里面写的时候要用 % 号,即 select * from T_PO where po_NO like '%8% ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号