易截截图软件、单文件、免安装、纯绿色、仅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这个值没改变,所以查询结果也没有改变。


相关文档:

mssql 中将汉字转换为拼音首字母方法


1.
--将汉字转换为拼音首字母
CREATE   function   GetAllPY(@str   nvarchar(4000))
returns   nvarchar(4000)
--WITH   ENCRYPTION
as
begin
declare   @intLen int
declare   @strRet nvarchar(4000)
declare   @temp   nvarchar(100)
set   @intLen &nb ......

关于ACCESS中重复行的处理

ACCESS中重复行的处理
ACCESS中,使用distinct和group by后,如果在java中使用rs.next()的话,就会提示“无效的游标”错误。
但是,并非不支持上面两个语法。
所以,可以通过以下语法进行二次查询,将重复数据去掉。
select stockName from (select stockName from stock group by stockName) order by stock ......

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

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

access db

 class Program
    {
        static void Main(string[] args)
        {
            String conStr = "Data Source=mesqas;User ID=ctdsp_oee;Password=12345 ......

C#连接Access和SQL Server数据库

C#连接连接Access
首先看一个例子代码片断:
程序代码:
--------------------------------------------------------------------------------
using System.Data;
using System.Data.OleDb;
......
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=C:\BegASPNET\Northwin ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号