ADO世界之FIRST

目录

一、ADO 简介

二、ADO 数据库连接

1.创建一个 DSN-less 数据库连接

2.创建一个 ODBC 数据库连接

3.到 MS Access 数据库的 ODBC 连接

4.ADO 连接对象(ADO Connection Object)

三、ADO Recordset(记录集)

1.创建一个 ADO 表记录集(ADO Table Recordset)

2.创建一个 ADO SQL 记录集 (ADO SQL Recordset)

3.从记录集中提取数据

4.ADO 记录集对象(ADO Recordset Object)

四、ADO 显示

1.显示字段名称和字段值

2.在一个 HTML 表格中显示字段名称和字段的值

3.向 HTML 表格添加标题

4.向 HTML 表格添加颜色

五、ADO 查询

1.显示选定的数据

2.仅显示 "Customers" 表的 "Companyname" 字段中大于 E 的记录

3.仅显示 "Customers" 表中的西班牙客户

4.让用户根据国别来选择客户


一、ADO 简介

①ADO自述:

1.ADO 是一项微软的技术

2.ADO 是一个微软的 Active-X 组件

3.ADO 是一个访问数据库中数据的编程接口

4.ADO 指 ActiveX 数据对象(ActiveX Data Objects)

5.ADO 被用于从网页访问数据库

6.ADO 会随微软的 IIS 被自动安装

②从一个 ASP 页面内部访问数据库的通常的方法是:

1.创建一个到数据库的 ADO 连接

2.打开数据库连接

3.创建 ADO 记录集

4.从记录集提取您需要的数据

5.关闭记录集

6.关闭连接

二、ADO 数据库连接

在从某个网页访问数据之前,必须先建立一个数据库连接。

1.创建一个 DSN-less 数据库连接

连接到某一个数据库的最简单的方法是使用一个 DSN-less 连接。DSN-less 连接可被用于您的站点上的任何微软 Access 数据库。

假设您拥有一个名为 "northwind.mdb" 的数据库位于 "c:/webdata/" 的 web 目录中,您可以使用下面的 ASP 代码连接到此数据库:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

%>

注意,在上面的例子中,您必须规定微软的 Access 数据库驱动程序(Provider),以及此数据库在计算机上的物理路径。

2.创建一个 ODBC 数据库连接

假设您拥有一个名为 "northwind" 的 ODBC 数据库,您可以使用下面的 ASP 代码连接到此数据库:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Open "northwind"

%>

通过一个 ODBC 连接,您可以连接到您的网络中任何计算机上的任何数据库,只要 ODBC 连接是可用的。

3.到 MS Access 数据库的 ODBC 连接

如何创建到一个 MS Access 数据库的连接:

1.打开控制面板中的 ODBC 图标

2.选择系统 ODBC 选项卡

3.点击 ODBC 选项卡中的添加按钮

4.选择 Driver to Microsoft Access,然后点击完成按钮

5.在下一个窗口中点击“选择”按钮来定位数据库

6.为此数据库赋予一个数据源名称(Data Source Name,DSN)

7.点击"确定"

注:此配置必须在您的网站所在的计算机上完成。假如您正在自己的计算机上运行PWS或者IIS,此架构是可以运行的,但是假如您的网站位于一台远程的服务器,您就必须拥有此服务器的物理访问权限,或者请您的 web 主机提供商为您做这些事情。

4.ADO 连接对象(ADO Connection Object)

ADO 连接对象用来创建到某个数据源的开放连接。通过此连接,您可以对此数据库进行访问和操作,查看此连接对象的所有方法和属性。

三、ADO Recordset(记录集)

如需读取数据库的数据,那么其中的数据必须首先被载入一个记录集中。

1.创建一个 ADO 表记录集(ADO Table Recordset)

假设有一个名为 "Northwind" 的数据库,通过下面的代码访问数据库中的 "Customers" 表:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

set rs=Server.CreateObject("ADODB.recordset")

rs.Open "Customers", conn

%>

2.创建一个 ADO SQL 记录集 (ADO SQL Recordset)

使用 SQL 访问 "Customers" 表中的数据:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

set rs=Server.CreateObject("ADODB.recordset")

rs.Open "Select * from Customers", conn

%>

3.从记录集中提取数据

假设用一个名为 "Northwind" 的数据库,通过下面的代码访问数据库中 "Customers" 表:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

set rs=Server.CreateObject("ADODB.recordset")

rs.Open "Select * from Customers", conn

for each x in rs.fields

   response.write(x.name)

   response.write(" = ")

   response.write(x.value)

next

%>

4.ADO 记录集对象(ADO Recordset Object)

ADO Recordset 对象可被用来容纳来自数据库表的记录集。

查看 ADO Recordset 对象的所有方法和属性。

四、ADO 显示

显示来自记录集中的数据的最常用的方法,就是把数据显示在 HTML 表格中。

1.显示字段名称和字段值

一个名为 "Northwind" 的数据库,显示出 "Customers" 表中的数据(记得以 .asp 为扩展名来保存这个文件):

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

set rs = Server.CreateObject("ADODB.recordset")

rs.Open "SELECT * FROM Customers", conn

do until rs.EOF

  for each x in rs.Fields

    Response.Write(x.name)

    Response.Write(" = ")

    Response.Write(x.value & "<br />")

  next

  Response.Write("<br />")

  rs.MoveNext

loop

rs.close

conn.close

%>

</body>

</html>

2.在一个 HTML 表格中显示字段名称和字段的值

通过下面的代码把表 "Customers" 中的数据显示在一个 HTML 表格中:

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

set rs = Server.CreateObject("ADODB.recordset")

rs.Open "SELECT Companyname, Contactname FROM Customers", conn

%>

<table border="1" width="100%">

<%do until rs.EOF%>

   <tr>

   <%for each x in rs.Fields%>

      <td><%Response.Write(x.value)%></td>

   <%next

   rs.MoveNext%>

   </tr>

<%loop

rs.close

conn.close

%>

</table>

</body>

</html>

3.向 HTML 表格添加标题

为这个 HTML 表格添加标题:

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

set rs = Server.CreateObject("ADODB.recordset")

sql="SELECT Companyname, Contactname FROM Customers"

rs.Open sql, conn

%>

<table border="1" width="100%">

  <tr>

  <%for each x in rs.Fields

    response.write("<th>" & x.name & "</th>")

  next%>

  </tr>

  <%do until rs.EOF%>

    <tr>

    <%for each x in rs.Fields%>

      <td><%Response.Write(x.value)%></td>

    <%next

    rs.MoveNext%>

    </tr>

  <%loop

  rs.close

  conn.close

  %>

</table>

</body>

</html>

4.向 HTML 表格添加颜色

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("/db/northwind.mdb"))

set rs = Server.CreateObject("ADODB.recordset")

sql="SELECT Companyname, Contactname FROM Customers"

rs.Open sql, conn

%>

<table border="1" width="100%" bgcolor="#fff5ee">

<tr>

<%for each x in rs.Fields

    response.write("<th align='left' bgcolor='#b0c4de'>" & x.name & "</th>")

next%>

</tr>

<%do until rs.EOF%>

    <tr>

    <%for each x in rs.Fields%>

       <td><%Response.Write(x.value)%></td>

    <%next

    rs.MoveNext%>

    </tr>

<%loop

rs.close

conn.close

%>

</table>

</body>

</html>

五、ADO 查询

使用 SQL 来创建查询,指定仅查看选定的记录和字段。

1.显示选定的数据

仅显示 "Customers" 表的 "Companyname" 字段中以 A 开头的记录:

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

set rs=Server.CreateObject("ADODB.recordset")

sql="SELECT Companyname, Contactname FROM Customers

WHERE CompanyName LIKE 'A%'"

rs.Open sql, conn

%>

<table border="1" width="100%">

  <tr>

  <%for each x in rs.Fields

    response.write("<th>" & x.name & "</th>")

  next%>

  </tr>

  <%do until rs.EOF%>

    <tr>

    <%for each x in rs.Fields%>

      <td><%Response.Write(x.value)%></td>

    <%next

    rs.MoveNext%>

    </tr>

  <%loop

  rs.close

  conn.close%>

</table>

</body>

</html>

2.仅显示 "Customers" 表的 "Companyname" 字段中大于 E 的记录

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("/db/northwind.mdb"))

set rs = Server.CreateObject("ADODB.recordset")

sql="SELECT Companyname, Contactname FROM Customers WHERE CompanyName>'E'"

rs.Open sql, conn

%>

<table border="1" width="100%">

<tr>

<%for each x in rs.Fields

    response.write("<th>" & x.name & "</th>")

next%>

</tr>

<%do until rs.EOF%>

    <tr>

    <%for each x in rs.Fields%>

       <td><%Response.Write(x.value)%> </td>

    <%next

    rs.MoveNext%>

    </tr>

<%loop

rs.close

conn.close

%>

</table>

</body>

</html>

3.仅显示 "Customers" 表中的西班牙客户

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("/db/northwind.mdb"))

set rs = Server.CreateObject("ADODB.recordset")

sql="SELECT Companyname, Contactname FROM Customers WHERE Country='China'"

rs.Open sql, conn

%>

<table border="1" width="100%">

<tr>

<%for each x in rs.Fields

    response.write("<th>" & x.name & "</th>")

next%>

</tr>

<%do until rs.EOF%>

    <tr>

    <%for each x in rs.Fields%>

       <td><%Response.Write(x.value)%> </td>

    <%next

    rs.MoveNext%>

    </tr>

<%loop

rs.close

conn.close

%>

</table>

</body>

</html>

4.让用户根据国别来选择客户

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("/db/northwind.mdb"))

set rs=Server.CreateObject("ADODB.recordset")

sql="SELECT DISTINCT Country FROM Customers ORDER BY Country"

rs.Open sql,conn

country=request.form("country")

%>

<form method="post">

Choose Country <select name="country">

<%  do until rs.EOF

    response.write("<option")

    if rs.fields("country")=country then

      response.write(" selected")

    end if

    response.write(">")

    response.write(rs.fields("Country"))

    rs.MoveNext

loop

rs.Close

set rs=Nothing %>

</select>

<input type="submit" value="Show customers">

</form>

<%

if country<>"" then

   sql="SELECT Companyname,Contactname,Country FROM Customers WHERE country='" & country & "'"

   set rs=Server.CreateObject("ADODB.Recordset")

   rs.Open sql,conn

%>

   <table width="100%" cellspacing="0" cellpadding="2" border="1">

   <tr>

     <th>Companyname</th>

     <th>Contactname</th>

     <th>Country</th>

   </tr>

<%

do until rs.EOF

   response.write("<tr>")

   response.write("<td>" & rs.fields("companyname") & "</td>")

   response.write("<td>" & rs.fields("contactname") & "</td>")

   response.write("<td>" & rs.fields("country") & "</td>")

   response.write("</tr>")

   rs.MoveNext

loop

rs.close

conn.Close

set rs=Nothing

set conn=Nothing%>

</table>

<%  end if %>

</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/686100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专业140+总410+合工大合肥工业大学833信号分析与处理综合考研经验电子信息与通信工程,真题,大纲,参考书。

经过一年努力奋战&#xff0c;今年初试总分410&#xff0c;其中专业课833信号分析与处理综合&#xff08;ss和dsp&#xff09;140&#xff08;感谢信息通信Jenny老师去年的悉心指导&#xff09;&#xff0c;数一130&#xff0c;顺利上岸&#xff0c;被合工大录取&#xff0c;看…

并查集详解及模板

1. 解决什么问题&#xff1f; 当题目最终要将数据分成若干个集合时&#xff0c;可往并查集的方向思考。并查集三个字拆开对应“合并”&#xff0c;“查找”&#xff0c;“集合”&#xff0c;这样就很好理解了。 【思路】 为了方便查找和合并&#xff0c;每个元素都有对应的代…

【Qt笔记】QSS中常用的子控件

QSS中常用的子控件 子控件名称说明::branchQTreeView的分支指示器::chunkQProgressBar的进度显示块::close-buttonQDockWidgte或QTabBar页面的关闭按钮::down-arrowQComboBox、QHeaderView(排序指示器)、QScrollBar或QSpinBox的下拉箭头::down-buttonQScrollBar或QSpinBox的向…

C语言——oj刷题——杨氏矩阵

目录 1. 理解杨氏矩形的特点 2. 实现杨氏矩形查找算法 3. 编写示例代码 当我们谈到杨氏矩形时&#xff0c;我们指的是一种在二维数组中查找目标元素的高效算法。它是由杨氏&#xff08;Yan Shi&#xff09;教授提出的&#xff0c;因此得名为杨氏矩形。 杨氏矩形问题的场景是…

必考板子题【Py/Java/C++三种语言详解】LeetCode每日一题240214【二叉树BFS】LeetCode102、二叉树的层序遍历

有LeetCode交流群/华为OD考试扣扣交流群可加&#xff1a;948025485 可上全网独家的 欧弟OJ系统 练习华子OD、大厂真题 绿色聊天软件戳 od1336了解算法冲刺训练 文章目录 题目链接题目描述解题思路DFS和BFS异同用队列维护的BFS 代码PythonPythonJavaC时空复杂度 相关习题华为OD算…

初始Git及Linux Centos下安装Git

文章目录 前言版本控制器注意Git安装 前言 不知道你⼯作或学习时&#xff0c;有没有遇到这样的情况&#xff1a;我们在编写各种⽂档时&#xff0c;为了防⽌⽂档丢失&#xff0c;更改失误&#xff0c;失误后能恢复到原来的版本&#xff0c;不得不复制出⼀个副本&#xff0c;⽐如…

一个小白的转行Python的经历!

1. 寻找一个导师 导师可以降低你加入一个新行业的成本&#xff0c;帮助你熟悉环境和行业规则&#xff0c;也会鼓励你完成心理方面的转变。 2. 建立新的社交网络 过去的人脉关系会阻碍你的转行&#xff0c;因为他们是以过去对你的认知来评价你。新领域的人脉&#xff0c;会给你提…

牛客2024年除夕娱乐赛

纯娱乐&#xff0c;就第四题值得一看。 A 我有一款游戏 code&#xff1a; #include <iostream> #include <cstdio> using namespace std;int main(){cout<<"原神启动";return 0; } B 除夜 #include <iostream> #include <cstdio> u…

互联网时代的文学复兴:中文诗词大数据分析 | 开源日报 No.170

chinese-poetry/chinese-poetry Stars: 45.4k License: MIT 最全的中文诗歌古典文集数据库&#xff0c;包含 5.5 万首唐诗、26 万首宋诗、2.1 万首宋词和其他古典文集。数据来源于互联网。该开源项目旨在通过 JSON 格式分发&#xff0c;方便用户开始自己的项目&#xff0c;并借…

Error: Illegal arguments: undefined string at bcrypt.hashSync

用react写后端的signUp时出现报错undefined string at bcrypt.hashSync&#xff0c;代码如下&#xff0c;报错在生成password时&#xff01; const bcrypt require(bcryptjs) const jwt require(jsonwebtoken) const db require(../config/db.config.js) const User db.us…

文件夹删不掉,显示在另一个文件中打开怎么办

问题&#xff1a; 一、想要删掉这个文件夹&#xff0c;却因为文件夹中的文件打开了删不掉&#xff0c;这里我因为做的测试&#xff0c;所以是知道打开了什么 二、一般情况下文件比较多时&#xff0c;是不知道打开了什么的&#xff0c;长这个样子 解决&#xff1a; 一、打开任…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第五天-ARM Linux编程之字符设备驱动(物联技术666)

链接&#xff1a;https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取码&#xff1a;1688 教学内容&#xff1a; 1、内核模块的简单框架&#xff1a; __init __exit执行完后就释放空间 简单框架&#xff1a;包含三个部分 1&#xff09;模块初始化和模块退出函数…

Python算法题集_将有序数组转换为二叉搜索树

Python算法题集_将有序数组转换为二叉搜索树 题108&#xff1a;将有序数组转换为二叉搜索树1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【极简代码递归】2) 改进版一【多行代码递归】3) 改进版二【极简代码递归传递下标】 4. 最优算法 本文为…

备战蓝桥杯---图论之最小生成树

首先&#xff0c;什么是最小生成树&#xff1f; 他就是无向图G中的所有生成树中树枝权值总和最小的。 如何求&#xff1f; 我们不妨采用以下的贪心策略&#xff1a; Prim算法&#xff08;复杂度&#xff1a;&#xff08;nm)logm)&#xff1a; 我们对于把上述的点看成两个集…

NX二次开发树列表双击快速进入编辑状态

先将这几个树列表回调注释给解开 int TreeColumn0;//定义一个全局边量记录点击的那一列NXOpen::BlockStyler::Tree::BeginLabelEditState OnBeginLabelEditCallback(NXOpen::BlockStyler::Tree *tree,NXOpen::BlockStyler::Node *node,int columID) {if(columnIDTreeColumnID)…

无人机基本知识,无人机遥控器功能详解与调试方法

无人机作为一种新兴的飞行器&#xff0c;近年来在各个领域得到了广泛的应用。而无人机遥控器则是控制无人机飞行的重要工具。 无人机遥控器是一种无线设备&#xff0c;通过它来远程控制无人机的飞行。遥控器通常包括一个或多个摇杆&#xff0c;用于控制无人机的各种动作&#x…

QGIS004:【10栅格地形分析工具箱】-坡度、坡向、山体阴影

摘要&#xff1a;QGIS栅格地形分析工具箱常用工具有坡度、坡向、山体阴影等选项&#xff0c;本文介绍各选项的基本操作。 实验数据&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1gYZ_om4AlSdal0bts2mt-A?pwd4rrn 提取码&#xff1a;4rrn 一、坡度 工具功能&…

【计算机网络】概述和运输层服务

运输层协议是在端系统中而不是在路由器中实现报文段 segment 运输层将从发送应用程序进程接收到的报文转化成运输层分组 将应用层报文划分为较小的块&#xff0c;并为每一块加上一个运输层首部运输层将报文段传递给网络层&#xff0c;网络层将其封装成网络层分组&#xff08;…

B端系统从0到1:有几步,其中需求分析要做啥?

一款B系统从无到有都经历了啥&#xff0c;而其中的需求分析又要做什么&#xff1f;贝格前端工场给老铁们做一下分析&#xff0c;文章写作不易&#xff0c;如果咱们有界面设计和前端开发需求&#xff0c;别忘了私信我呦&#xff0c;开始了。 一、B端系统从0到1都有哪些要走的步骤…

Vue练习3:组件开发3(页面切换)

预览 ——————————————————————————————————————————— 组件文档 Pager组件 属性 属性名含义类型必填默认值current当前页码&#xff08;总数据量/单页容量&#xff09;Number否1total总数据量Number否0limit单页容量Number否10vis…