以前使用vb6操作数据库的时候,可以使用ADODB 组件来与数据库建立连接,然后把一个数据表读入到一个RecordSet中,我们要获取随机的记录的时候可以使用如下代码来实现:
假设已经连接上了数据库,并打开了一个变量名为rsUser的RecordSet
Dim R As Random = New Random
Dim int As Integer = R.Next(1, rsUser.RecordCount)
rsUser.Move(int, 1)
在vb.net中,我们使用ADO.net来操作数据库,一般获取一个随机记录,都是打开一个只读的DataReader,而它是按顺序读取记录的,所以我们不能用Move 方法跳到随机数所指向的记录,但是我们可以考虑直接在SQL语句中进行随机数查询。示例如下:
首先建立一个Windows项目,在Form1窗体级代码中添加OleDB 的引用:
Imports System.Data.OleDb
然后在一个按钮的Click事件中添加如下代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objConn As OleDbConnection
Dim objCmd As New OleDbCommand
'这里假设你的机子上存在名为 dos.mdb 的数据库
objConn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\dos.mdb")
objConn.Open()
objCmd.Connection = objConn
'表示取id大于等于1到100的随机数,这样是防止碰到不存在的ID,100这个数值在实际使用中应该是等于数据库的最大记录ID
'http://www.qqread.com/book/myvbnet/my0053.html
objCmd.CommandText = "select top 1 * from info where id>=int(100*Rnd()+1)"
Dim objRd As OleDbDataReader = objCmd.ExecuteReader()
If objRd.HasRows = True Then
objRd.Read()
MessageBox.Show(objRd.GetValue(0).ToString)
Else
MessageBox.Show("没有找到记录")
End If
End Sub
收藏地址:http://www.qqread.com/book/myvbnet/my0053.html相关专题
- 数据库专栏 (5161篇文章)
- 数据库处理专题 (8670篇文章)
- 城域网专题 (7829篇文章)
- 数据库安全技术专题 (13158篇文章)
- 数据库安装与卸载 (10537篇文章)
- .NET移动与嵌入式技术 (5963篇文章)
- .NET开发手册 (5664篇文章)
- Linux数据库宝典 (13135篇文章)
- 数据库相关文章 (5161篇文章)
- VB数据库操作基础 (240篇文章)
- 用vb.net实现闹钟提醒程序 (9次浏览)
- vb.net GDI+入门——画笔、画刷和颜色 (3次浏览)
- VB.Net实现进程监视器的方法 (1次浏览)
- VB2005中开发新一代控制台应用程序(3) (0次浏览)
- vb.net使用ListView 控件显示系统驱动器 (0次浏览)
- vb.net入门——ListView 控件的使用 (0次浏览)
- vb.net GDI+入门——使用Graphics对象填充图形 (0次浏览)
- .Net中ListView控件多选时复选框自动选择问题 (0次浏览)
- vb.net GDI+入门——使用Graphics对象绘制线图 (0次浏览)
- vb.net GDI+入门——了解Font类 (0次浏览)



