20编程21编程爱好者22vb编程,23数控编程24编程中国25编程论坛26编程语言27游戏编程28编程软件下载29编程工具30socket编程31网络编程32编程器33c语言编程,34flash编程35编程软件36数控车床编程37windows编程38编程入门,39windows核心编程40cnc编程41vc 编程,42linux 编程43asp编程44vb编程实例45串口编程46手机编程47编程教程48plc编程,49单片机编程50vc 网络编程51excel编程,52unix网络编程53编程学习,54编程之道55数据库编程56单片机编程器57黑客编程58计算机编程59网页编程60嵌入式编程,61编程高手箴言62flash编程教程63vfp编程64windows网络编程,65编程基础66c语言编程实例67c语言编程软件68vf编程69shell编程,70vb数据库编程71matlab编程,72c语言编程工具73编程思想74php编程,75c编程76jsp编程77电脑编程技巧与维护,78三菱plc编程软件,79vb编程软件下载80pb编程81数控编程实例82asp编程工具,83c专家编程,84win32编程85数控铣床编程86asp.net高级编程,,87vc 数据库编程88vba编程89jsp高级编程90c语言编程宝典,91unix环境高级编程;92编程珠玑93delphi编程94delphi数据库编程95vb编程教程96单片机编程软件
1编程爱好者网站2vb编程网站,3电子商务网站编程4游戏编程网站5最大的编程网站6网站编程软件7可编程逻辑中文网站8网站 编程 语言9网站编程 数据库,10jsp网站编程11asp编程网站12网站编程电子书13好的编程网站,14c语言编程网站15编程门户网站16如何学习网站编程17百度网站的编程语言18vb编程乐园网站指南19wince 编程网站
1asp.net2asp教程,3asp源码4asp免费空间5asp论坛6asp代码7asp源代码8asp下载,9asp源码下载10asp木马11asp.net教程12asp学习13什么是asp14asp空间,15admin.asp dir16asp程序17asp教程下载18asp.net 2.019asp整站程序,20asp文件21十天学会asp22asp入门23asp源程序24asp实例25asp函数26asp服务器27asp.net论坛28asp id,29asp整站下载30asp网站31asp论坛下载32asp源代码下载,33asp整站34asp技术35asp access36asp.net源码37asp简介38asp免费空间申请39asp.net下载,40asp留言板41asp sql42asp 数据库43asp站长助手44asp连接数据库45asp留言本,46asp.net教程下载47asp分页48asp格式49asp论坛程序50asp.net源代码51asp软件52asp模板53asp session54asp语法,55如何打开asp文件56asp解密57asp编程58asp.net实例,59asp实例教程60asp程序下载61asp计数器62asp.net入门,63asp运行环境64asp基础教程65apache asp66asp入门教程,67asp编辑器68asp组件69asp连接access70conn.asp71asp书籍,72asp论文73asp工具74asp文件上传75asp探针76asp原代码下载77asp include78user wantpws.asp79asp split,80asp fso81asp网页制作82printpage.asp83什么是asp.net,84index.asp85asp.net datagrid86asp基础87asp replace88asp代码下载89asp新闻系统
1php论坛2免费php空间,3php下载4php源码5php mysql6php教程7php文件8php空间9apache php10什么是php11apache php mysql12php学习13php论坛下载14iis php15php cms16php入门17php blog18php手册,19php代码20php整站程序21php session22php安装23php源码下载24php配置25php源代码26php cookie27php网站28iis php mysql29php编程30php留言板31php探针32php注入33php.ini34php运行环境35index.php36php教程下载,37php论坛程序38php 文件上传39php服务器40php环境41php 函数;42php格式43php编辑器44php editor45如何打开php文件46php access47十天学会php48php模板49php xml;50php程序51php留言本52php文件怎么打开53php技术54ajax php55php简介56php注入工具57打开php文件58php语言59php mail;60php软件;61免费php mysql空间62php self63php 数组.64php分页,65php nuke66php阅读器67免费php空间申请68国外免费php空间69php程序下载70php 正则表达式71asp php,72php网站管理系统73php程序设计74php是什么文件75php 实例76php 开发工具77php 验证码78php官方网站79php学习资料
1jsp教程2jsp源码3jsp论坛4什么是jsp5jsp源代码6jsp空间7jsp学习8jsp文件9jsp mysql,10jsp入门11jsp连接数据库12jsp技术13eclipse jsp14jsp分页15jsp源代码下载16jsp access17jsp教程下载18jsp开发工具,19jsp代码20jsp简介21jsp环境配置22jsp连接mysql,23jsp实例24免费jsp空间25jsp配置26jsp session,27jsp运行环境28jsp下载29jsp网站30jsp include31jsp编程,32jsp介绍33jsp 数据库34jsp设计35jsp servlet36jsp标签37jsp应用开发详解38jsp 中文39jsp oracle40jsp论文41jsp 文件上传,42jsp高级编程43jsp源码下载44jsp 乱码45jsp开发46jsp分页显示47jsp sql48jsp连接sql49jsp 页面跳转50jsp request51eclipse开发jsp52iis jsp53jsp开发环境54jsp sqlserver,55jsp cookie56jsp服务器57jsp连接access58jsp毕业论文59jsp新闻发布系统60jsp留言板61jsp 电子书62jsp forward63jsp中文网64tomcat jsp65jsp语法66jsp留言本67asp jsp,68jsp import69jsp源程序70jsp基础71jsp毕业设计,72jsp格式73jsp 中文乱码,74jsp开发实例75jsp书籍76jsp论坛下载77jsp 上传,78jsp计数器79jsp 注释80jsp电子教程81jsp 保存用户名密码,82jsp的优点83jsp软件下载84jsp语言85jsp代码下载86jsp blog87jsp 打印88jsp手册

思顿科技-专业网站制作指南、网页设计制作教程、免费网页制作素材下载、免费学习网页制作指南,专业网站建设服务、网站制做指南、免费网页制作指南、网页制作服务、免费空间域名服务、
首页
网页教程
网页素材
收录查询
工具下载
网站欣赏
网站论坛
免费博客
建站服务

ASP.NET讲座(5)-数据库的操作ADO.NET
你当前的位置:网站制作指南 --> 技术文档全集 (www.STasp.com)

  自若干年前推出开放式数据库连接 (ODBC) 应用程序编程接口 (API) 以来,出现了各种各样的数据库访问技术,而 ADO.NET 是其中最新的一种。在这过程中,发生了许多有趣的事。例如,COM 闯入数据库领域,开始培植 OLE DB 的殖民进程。然后,大致相当于 OLE DB 自动化版本的 ACTIVEX DATA OBJECTS (ADO) 被选来统治 WINDOWS 数据库开发者的 VISUAL BASIC 和 ASP 社区。

  通过 .NET,MICROSOFT 正在提供通用框架(即 FRAMEWORK CLASS LIBRARY),其中将包括所有现有的 WINDOWS API 甚至更多的内容。特别值得一提的是,它包括大量常用的库,而这些库现在需要通过各个 COM 对象分别获得。在这些库中,您会发现 XML 和 ADO 对象模型,它们被集成到了叫做 ADO.NET 的类子树中。

  ADO.NET 事实上成为构建数据感知 .NET 应用程序的基础。和 ADO 不同的是,ADO.NET 遵循更通用的原则,不那么专门面向数据库。ADO.NET 集合了所有允许数据处理的类。这些类表示具有典型数据库功能(如索引、排序和视图)的数据容器对象。尽管 ADO.NET 是 .NET 数据库应用程序的权威解决方案,但从总体设计上来看,它不象 ADO 模型那样以数据库为中心,这是 ADO.NET 的一大特点。

  ADO.NET 与 ADO 有很大差异。ADO.NET 是新的数据访问编程模型,需要开发人员的全面理解、投入和新思维。然而,一旦开始掌握 ADO.NET,您将意识到:原有的 ADO 技巧非常有助于您以不同、却更巧妙和可靠的方式来创建有效的应用程序和解决各种老问题。
(以上译自 MICROSOFT .NET部一位官员的讲话)

  5.1 目前的ADO.NET

  目前 ADO.NET 提供了两种托管提供程序:一种用于 SQL SERVER 7.0 或更高版本,另一种用于其他所有您可能已经安装的 OLE DB 提供程序。在这两种情况下您分别使用不同的类,但遵循相似的命名规则。除前缀外,名称都是相同的。前一种情况前缀为 SQL,后一种情况则是 ADO。

<% @ IMPORT NAMESPACE="SYSTEM.DATA.ADO" %>
<% @ IMPORT NAMESPACE="SYSTEM.DATA.SQL" %>

  您应该使用 SQL 类访问 SQL SERVER 表,因为它们直接进入数据库服务器的内部 API,跳过了由 OLE DB 提供程序表示的中间层。ADO 类是 OLE DB 提供程序上的 .NET 接口,它们使用 COM INTEROP 桥进行工作。

  5.2 连接一个数据库

DIM MYCONNECTION AS NEW
 SQLCONNECTION("SERVER=LOCALHOST;UID=SA;PWD=;DATABASE=PUBS")
DIM MYCOMMAND AS NEW
 SQLDATASETCOMMAND("SELECT * FROM AUTHORS", MYCONNECTION)

或者
 SQLCONNECTION MYCONNECTION = NEW SQLCONNECTION();
 MYCONNECTION.DATASOURCE = "LOCALHOST";
 MYCONNECTION.USERID = "SA";
 MYCONNECTION.PASSWORD = "";
 MYCONNECTION.CONNECTIONTIMEOUT = 30;
 MYCONNECTION.OPEN();
 MYCONNECTION.DATABASE = "PUB";
 MYCONNECTION.ISOLATIONLEVEL = ISOLATIONLEVEL.READCOMMITTED
  

  这里我们需要讲述一下CONNECTION的方法和属性了。

  CONNECTIONTIMEOUT超时

  DATABASE 缺省数据库

  DATASOURCE DNS

  USERID 原来叫UID

  PASSWORD

  STATE 取得目前连接的状态

  OPEN() 打开

  CLOSE() 关闭
  5.3 操作数据库

  通过一个COMMAND对象,我们才可以对数据库进行操作

DIM MYCONNECTION AS SQLCONNECTION = NEW SQLCONNECTION("SERVER=LOCALHOST;UID=SA;
PWD=;DATABASE=PUBS")
DIM MYCOMMAND AS SQLCOMMAND = NEW SQLCOMMAND("SELECT * FROM AUTHORS", MYCONNECTION)
MYCONNECTION.OPEN()
DIM DR AS NEW SQLDATAREADER
MYCOMMAND.EXECUTE(DR)

...

MYCONNECTION.CLOSE()

或者 这样做
DIM MYCONNECTION AS NEW SQLCONNECTION("SERVER=LOCALHOST;UID=SA;PWD=;DATABASE=PUBS")
DIM MYCOMMAND AS NEW SQLCOMMAND( _
"UPDATE AUTHORS SET PHONE='(800) 555-5555' WHERE AU_ID = '123-45-6789'", _
MYCONNECTION)
MYCOMMAND.ACTIVECONNECTION.OPEN()
MYCOMMAND.EXECUTENONQUERY()
MYCOMMAND.ACTIVECONNECTION.CLOSE()


  这些都是SQLCOMMAND的标准用法,下面列出了COMMAND的所有属性和相关方法。

  ACTIVECONNECTION 取得或设置联结CONNECTIONS

  COMMANDTEXT 执行的SQL语句或储存过程(STOREDPROCEDURE)名

  COMMANDTIMEOUT 超时

  COMMANDTYPE COMMAND操作的类型(STOREDPROCEDURE,TEXT,TABLEDIRECT)三种,默认TEXT

  PARAMETERS 操作储存过程时使用

  EXECUTE() 执行SQL语句或储存过程

  EXECUTENONQUERY() 同上,但无返回,或者说,只返回记录的数量

  注意: 和ASP一样,在运行完以后一定要注意关闭CONNECTION,否则会很耗服务器资源的。

  5.4 数据的显示

  在这节的讲解前,我们先建立一个数据库,名字叫 ASPNET 然后里面有一张表USER 结构如下:
UIDUSERNAMEEMAIL
1 USER1MAIL1
2 USER2MAIL2
3 USER3 MAIL3

  SQL 语句 SELECT * FROM USER

  数据库语句 SERVER=LOCALHOST;UID=SA;PWD=;DATABASE=ASPNET

  5.4.1 用 DATAREADER 方法显示数据

  有两种方法可以显示数据 DATAREADER方法,和DATASET方法,而DATAREADER只能储存查询数据,我们先讲用DATAREADER方法显示

<SCRIPT LANGUAGE="VB" RUNAT="SERVER">
 SUB PAGE_LOAD(SRC AS OBJECT, E AS EVENTARGS)
  DIM MYCONNECTION AS SQLCONNECTION =
     NEW SQLCONNECTION("SERVER=LOCALHOST;UID=SA;
               PWD=;DATABASE=ASPNET")
  DIM MYCOMMAND AS SQLCOMMAND =
     NEW SQLCOMMAND("SELECT * FROM USER", MYCONNECTION)
  MYCONNECTION.OPEN()
  DIM DR AS SQLDATAREADER
  MYCOMMAND.EXECUTE(DR)
  MYDATAGRID.DATASOURCE = DR
  MYDATAGRID.DATABIND()
  MYCONNECTION.CLOSE()
 END SUB
</SCRIPT>
<ASP:DATAGRID ID="MYDATAGRID" RUNAT="SERVER"
   WIDTH="700"
   BACKCOLOR="#CCCCFF"
   BORDERCOLOR="BLACK"
   SHOWFOOTER="FALSE"
   CELLPADDING=3
   CELLSPACING="0"
   FONT-NAME="VERDANA"
   FONT-SIZE="8PT"
   HEADERSTYLE-BACKCOLOR="#AAAADD"
/>

  对于显示的控制,大家可以复习一下前一讲,数据的绑定,其实多联系也是一种很好的方法。

  在定制显示中,还有一种比较使用的方法,而不用绑定

DIM DR AS SQLDATAREADER

  DR["字段名"]的方法也可以取到数据

  5.4.2 用 DATASET 方法显示数据

  用DATASET记录的数据其实就是一个表,而对表的操作,只是对DATASET的操作,并没有改变数据库,而要到DATASET更新的时候,才完整的写入数据库,这个往往是新手容易忽视的地方。

<%@ IMPORT NAMESPACE="SYSTEM.DATA" %>
<%@ IMPORT NAMESPACE="SYSTEM.DATA.SQL" %>

<HTML>
<SCRIPT LANGUAGE="VB" RUNAT="SERVER">

 SUB PAGE_LOAD(SRC AS OBJECT, E AS EVENTARGS)

  DIM DS AS DATASET
  DIM MYCONNECTION AS SQLCONNECTION
  DIM MYCOMMAND AS SQLDATASETCOMMAND
  
  MYCONNECTION = NEW
   SQLCONNECTION("SERVER=LOCALHOST;UID=SA;PWD=;DATABASE=ASPNET")
  MYCOMMAND =
   NEW SQLDATASETCOMMAND("SELECT * FROM USER",MYCONNECTION)

  DS = NEW DATASET()
   ~~~初始化DATASET()
  MYCOMMAND.FILLDATASET(DS, "USER")
   ~~~FILLDATASET顾名思义把整个查询内容储存进DATASET中
  MYDATAGRID.DATASOURCE=DS.TABLES("USER").DEFAULTVIEW
  MYDATAGRID.DATABIND()
   ~~~绑定数据
 END SUB
</SCRIPT>
<BODY>

 <H3><FONT FACE="VERDANA">
  SIMPLE SELECT TO A DATAGRID CONTROL
</FONT></H3>

<ASP:DATAGRID ID="MYDATAGRID" RUNAT="SERVER"
  WIDTH="700"
  BACKCOLOR="#CCCCFF"
  BORDERCOLOR="BLACK"
  SHOWFOOTER="FALSE"
  CELLPADDING=3
  CELLSPACING="0"
  FONT-NAME="VERDANA"
  FONT-SIZE="8PT"
  HEADERSTYLE-BACKCOLOR="#AAAADD"
  MAINTAINSTATE="FALSE"
/>

</BODY>
</HTML>
  5.5 数据的添加,修改,和删除

  其实他们是在就是简单的不要再简单的东西。

  添加:

DATAROW DR=SQLDATASET.TABLES["USER"].NEWROW();
DR["ID"] = "4";
DR["USERNAME"] = "USER4";
DR["EMAIL"] = "MAIL4";
SQLDATASET.TABLES.ROWS.ADD(DR);
修改:
SQLDATASET.TABLES["USER"].ROWS[3]["USERNAME"]= "USER5"
删除:
SQLDATASET.TABLES["USER"].ROWS[3].DELETE()
修改完之后,必须更新数据库
SQLCOMMAND.UPDATE(SQLDATASET, "USER")

  5.6 关于显示中的分页问题

  这个问题,一再在论坛中给众人提出过,曾经是ASP中,一个比较难解决的问题,不过在ASP.NET中,只不过是DATAGRID的一个属性而已。

  ALLOWPAGING="TRUE" 是否支持分页

  PAGESIZE="10" 每页显示多少

  PAGERSTYLE-HORIZONTALALIGN="LEFT" 分页显示的定位

  完整的例子:

<ASP:DATAGRID ID="DATAGRID1" RUNAT="SERVER"
  BORDERCOLOR="BLACK"
  BORDERWIDTH="1"
  GRIDLINES="BOTH"
  CELLPADDING="3"
  CELLSPACING="0"
  HEADERSTYLE-BACKCOLOR="#AAAADD"
  ALLOWPAGING="TRUE"
  PAGESIZE="10"
  PAGERSTYLE-HORIZONTALALIGN="LEFT"/>

 
| 关于我们 | 联系我们 | 业务合作 | 友情链接 | 网站地图 |
版权所有©思顿科技-专业网站制作指南2004-2006 在线技术支持- QQ:63127313