ASP.NET数据库使用精典-----读取数据库中数据

 

读取数据库中的数据

在ASP.NET中,读取数据库中的数据可以使用datareader 和dataset两种方法,两者差异如下:

使用dataset对象读取数据大致需要以下五个步骤:

(1)建立数据库链接,可以选用sqlconnection或者oledbconnection

(2)将查询保存在sqldataadapter或者oledbdataadapter对象中

(3)使用dataadapter对象的fill方法将数据填充到dataset中的datatable中

(4)为datatable对象建立dataview对象以显示数据,这一步可以省略。

(5)将dataview或者dataset绑定到server control上。

使用datareader读取数据大致需要以下六个步骤:

(1)建立数据库链接,可以选用sqlconnection或者oledbconnection

(2)使用connection对象的OPEN方法打开数据库链接

(3)将查询保存在sqlcommand或者oledbcommand对象中

(4)调用command对象的executereader方法,将数据读入datareader对象中

(5)调用datareader的READ或者GET方法读取一笔数据,以便显示

(6)调用connection对象的close方法,关闭数据库链接

1 用datareader读取数据

  前面我们已经学会了建立数据库链接和开启数据库,但是执行sql指令及开启表则必须依赖command对象,使用command对象执行sql指令的程序大致如下:

 dim cmd as oledbcommand  '声明一个command对象

' 建立command对象,并且指定SQL语句

 response.write(server.mappath("user.mdb"))

 cmd=new oledbcommand("select * from reg " , comm)

 dim rd as oledbdatareader   '声明一个datareader对象

 rd=cmd.executereader() '执行SQL指令,并将其结果设置给datareader

 在建立command对象的语句中,conn参数为一个connection,第一个参数为SQL的指令。

 command对象在执行SQL指令时需要调用executereader方法,executereader方法会把SQL指令的返回结果赋给datareader对象

 下面使用datareader对象来读取数据库中的数据:

  dim i as integer

  while rd.read()

    response.write("<ul>")

    for i=0 to rd.fieldcount-1

       response.write("<li>" & rd.getname(i) & "=" & rd.item(i))

    next

    response.write("</ul>")

  end while

  Getitem(index)方法用于获取字段名,item(index)用于获取字段值。

使用datareader对象需要注意以下属性:

  ● read方法,读取单行数据,若读取成功,会将所读取的单行数据存放在datareader对象中,然后自动将光荣榜标移到下一行数据,返回true,如果读取失败,返回false,据此可以使用while语句判断是否已经读取到数据库的最后一条记录。此外值得注意的是datareader对象读取完一条数据记录后会自动将光标移到下一条记录,不需要使用move next语句。这是ADO.NET和ADO比较大的区别。

  ●fieldcount属性表示datareader对象中记录的列数,值得注意的是item属性的索引值是从0开始的,所以最大的索引值是fieldcount-1

2 使用dataset读取数据

  datareader对象只能一行一行读取数据记录,如果对数据进行大规模处理时使用datareader就有些捉襟见肘了,它的优点是节省内存,使用dataset对象最大优点就是能同时将整个表读入内存,所以最适合进行数据绑定。如使用datagrid控件来显示数据时,使用dataset读取数据是最好的选择。但它的最大缺点是比较消耗内存

(1)使用dataadapter和dataset

使用dataset对象一般需要和dataadapter对象联合使用

将一个表填入dataset对象

  dim conn as oledbconnection '声明一个oledbconnection对象

  conn=new oledbconnection()  '建立一个oledbconnection对象

  '设置链接字符串connectionstring

  conn.connectionstring="provider=microsoft.jet.oledb.4.0;" & " data source=" & "server.mappath("user.mdb")

  conn.open()

  '建立dataadapter对象,并指定SQL语句

   da=new oledbdataadapter("select * from reg" ,conn)

   dim ds as dataset '声明一个dataset对象

   da.fill(ds,"注册用户表") ' 在dataset对象中注册一个名为“注册用户表”的数据表

(2)用datatable操作数据

  在了解了dataset对象和datatable对象的关系以后,下面将使用datatable来操作数据

  如果想借助datatable对象来读取表的内容,必须使用以下两种属性: 

  ● columns属性,数据列信息,此属性为datacolumn对象构成的集合对象

  ● rows属性  数据行信息,此属性为datarow对象所构成的集合对象

  如果使用循环来读取所有数据,就可以达到使用datareader对象读取数据的效果,代码大致如下:

  for i=0 to dt.rows.count-1

    response.write("<ul>")

    for j=0 to dt.columns.count-1

       str="<li>" &dt.columns(j).caption

       str=str & "=" dt.rows(i).item(j)

       response.write(str)

    next

    response.write("</ul>")

  next

 

 

时间: 2024-10-26 05:47:30

ASP.NET数据库使用精典-----读取数据库中数据的相关文章

asp 读取数据库-asp编写的网页,读取数据库时,找不新建的表中数据,rs.eof 为真(此网页可读取别的表中的数据)

问题描述 asp编写的网页,读取数据库时,找不新建的表中数据,rs.eof 为真(此网页可读取别的表中的数据) <% size=request("size") c1=request("case") if size="" then size=20 end if n=1 title=trim(request("title")) action=request("action") sh=request(&qu

paradox数据库建立的table表中数据可以求和吗?谢谢

问题描述 paradox数据库建立的table表中数据可以求和吗?谢谢 如题paradox数据库建立的table表中数据可以求和吗?谢谢

access-C#如何读取.accdb中数据

问题描述 C#如何读取.accdb中数据 现有access的.accdb文件(两列数据),用C#如何将每一列数据分别存入数组? 解决方案 C# 程序读取Excel数据 解决方案二: 这个简单,开两个数组,用 datareader 读一次,分别添加进去.

python-py webdriver 读取csv中数据 提示:No such file or directory

问题描述 py webdriver 读取csv中数据 提示:No such file or directory 1.本地在excel中创造数据,另存为 XX.csv 文件中 2.代码如下: #-*-coding:utf-8-*- import os import csv #导入csv包 #files = file('E:/selenium_python_script/script_indie/parametric/parametric_csv/userinfo.csv','rb') files

分批读取文件中数据的程序流程及其C代码实现

一.概述 在实际的软件开发项目中,经常需要处理大量的文件.某些文件中包含了相当多的数据记录数,如作者本人参与过的项目中,一个文件中有好几十万条记录.如果一次性将多条记录读入,则会花费大量的处理时间,且占用大量的内存. 为此,要求对于包含大量数据记录的文件进行分批读取操作,即每一轮读取一定数目的数据记录,待将这些记录处理完成之后,再读取下一批数据.本文介绍分批读取文件中数据的程序流程,并给出了C程序实现. 二.总体程序流程 实现分批读取文件中数据的程序流程如图1所示. 图1 实现分批读取文件中数据

asp.net 水晶报表如何读取数据库里的图片路径

问题描述 在网上看了很多,说什么直接把图片保存到数据里,难道保存路径不可以嘛? 解决方案 解决方案二:没搞过友情顶你查的是直接保存图片的二进制?解决方案三:E:\WebSiteTest\img\02-999.jpg这是数据库里的保存的路径,而水量报表上也是这么显示的解决方案四:没有把图片显示出来!解决方案五:我们单位的图片服务器上存的都是路径.解决方案六:说错了,是数据库里是存的路径,再从专门的图片服务器上取到图像.解决方案七:在水晶报表里怎么显示呢?求方法!!解决方案八:数据库里一般做法是保存

求救!c#datagridview已绑定ACCESS数据库,现在对datagridview中数据进行更改,通过保存按钮更新到数据库!

问题描述 如题.这是按钮代码privatevoidbutton2_Click(objectsender,EventArgse){if(MessageBox.Show("是否保存数据?","系统消息",MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2)==DialogResult.OK){dataGridView1.EndEdit();//重新用表格数据

ASP.NET中上传并读取Excel文件数据

asp.net|excel|上传|数据 在CSDN中,经常有人问如何打开Excel数据库文件.本文通过一个简单的例子,实现读取Excel数据文件.首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件.一个文件控件和一个按钮控件. <INPUT id="File1" type="file" name="File1" runat="server"><asp:Button id="B

ASP.NET中上传并读取Excel文件数据示例

  如何打开Excel数据库文件,想必有很多朋友都不清楚吧,下面通过一个简单的例子,实现读取Excel数据文件       在CSDN中,经常有人问如何打开Excel数据库文件.本文通过一个简单的例子,实现读取Excel数据文件. 首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件.一个文件控件和一个按钮控件. 代码如下: <INPUT id="File1" type="file" name="File1" runa