精灵巫婆 发表于 2015-1-16 22:12:44

ASP网站制作之ASP经常使用数据库毗连及操纵的办法和技能

使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。技能|数据|数据库|数据库毗连1.ASP毗连Access数据库
<%
dimconn,mdbfile
mdbfile=server.mappath("数据库称号.mdb")
setconn=server.createobject("adodb.connection")
conn.open"driver={microsoftaccessdriver(*.mdb)};uid=admin;pwd=数据库暗码;dbq="&mdbfile
%>
2.ASP与SQL数据库毗连:
<%
dimconn
setconn=server.createobject("ADODB.connection")
con.open"PROVIDER=SQLOLEDB;DATASOURCE=SQL服务器称号或IP地点;UID=sa;PWD=数据库暗码;DATABASE=数据库称号
%>
创建纪录集工具:
Setrs=server.createobject("adodb.recordset")
rs.openSQL语句,conn,3,2
3.SQL经常使用命令利用办法:
(1)数据纪录选择:
sql="select*from数据表where字段名=字段值orderby字段名"
sql="select*from数据表where字段名like‘%字段值%‘orderby字段名"
sql="selecttop10*from数据表where字段名orderby字段名"
sql="select*from数据表where字段名in(‘值1‘,‘值2‘,‘值3‘)"
sql="select*from数据表where字段名between值1and值2"
(2)更新数据纪录:
sql="update数据表set字段名=字段值where前提表达式"
sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere前提表达式"
(3)删除数据纪录:
sql="deletefrom数据表where前提表达式"
sql="deletefrom数据表"(将数据表一切纪录删除)
(4)增加数据纪录:
sql="insertinto数据表(字段1,字段2,字段3…)valuess(值1,值2,值3…)"
sql="insertinto方针数据表select*from源数据表"(把源数据表的纪录增加到方针数据表)
(5)数据纪录统计函数:
AVG(字段名)得出一个表格栏均匀值
COUNT(*|字段名)对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名)获得一个表格栏最年夜的值
MIN(字段名)获得一个表格栏最小的值
SUM(字段名)把数据栏的值相加
援用以上函数的办法:
sql="selectsum(字段名)as别号from数据表where前提表达式"
setrs=conn.excute(sql)
用rs("别号")猎取统的计值,别的函数使用同上。
(5)数据表的创建和删除:
CREATETABLE数据表称号(字段1范例1(长度),字段2范例2(长度)……)
例:CREATETABLEtab01(namevarchar(50),datetimedefaultnow())
DROPTABLE数据表称号(永世性删除一个数据表)
(6)纪录集工具的办法:
rs.movenext将纪录指针从以后的地位向下移一行
rs.moveprevious将纪录指针从以后的地位向上移一行
rs.movefirst将纪录指针移到数据表第一行
rs.movelast将纪录指针移到数据表最初一行
rs.absoluteposition=N将纪录指针移到数据表第N行
rs.absolutepage=N将纪录指针移到第N页的第一行
rs.pagesize=N设置每页为N笔记录
rs.pagecount依据pagesize的设置前往总页数
rs.recordcount前往纪录总数
rs.bof前往纪录指针是不是超越数据表首端,true暗示是,false为否
rs.eof前往纪录指针是不是超越数据表末了,true暗示是,false为否
rs.delete删除以后纪录,但纪录指针不会向下挪动
rs.addnew增加纪录到数据表末了
rs.update更新数据表纪录
判别所填数据是数字型
ifnotisNumeric(request("字段称号"))then
response.write"不是数字"
else
response.write"数字"
endif
常常利用到有关数据库的操纵。包含毗连代码、SQL命令等等,又未曾决心往影象它们(我自己是不肯意往记这东东),以是经常在用到的时分又往查书籍,翻来翻往。一些对照罕用的数据库还纷歧定能顺遂找到,以是如今把它们全归结到这里,供应人人参考。
1、数据库的毗连办法:
1.Access数据库的DSN-less毗连办法:
setadocon=Server.Createobject("adodb.connection")
adoconn.Open"Driver={MicrosoftAccessDriver(*.mdb)};DBQ="&_
Server.MapPath("数据库地点路径")
2.AccessOLEDB毗连办法:
setadocon=Server.Createobject("adodb.connection")
adocon.open"Provider=Microsoft.Jet.OLEDB.4.0;"&_
"DataSource="&Server.MapPath("数据库地点路径")
3.SQLserver毗连办法:
setadocon=server.createobject("adodb.recordset")
adocon.Open"Driver={SQLServer};Server=(Local);UID=***;PWD=***;"&_
"database=数据库名;"
4.SQLserverOLEDB毗连办法:
setadocon=Server.Createobject("adodb.connection")
adocon.open"provider=SQLOLEDB.1;DataSource=RITANT4;"&_
"userID=***;Password=***;"&_
"initalCatalog=数据库名"
5.Oracle毗连办法:
setadocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoftodbcfororacle};server=oraclesever.world;uid=admin;pwd=pass;"
6.OracleOLEDB毗连办法:
setadocon=Server.Createobject("adodb.connection")
adocon.open"Provider=OraOLEDB.Oracle;datasource=dbname;userid=admin;password=pass;"
7.dBase毗连办法:
setadocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoftdbasedriver(*.dbf)};driverid=277;dbq=------------;"
8.mySQL毗连办法:
setadocon=Server.Createobject("adodb.connection")
adocon.open"Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"
9.VisualFoxpro毗连办法:
setadocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoftVisualFoxprodriver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"
10.MStext毗连办法:
setadocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsofttextdriver(*.txt;*.csv)};dbq=-----;"&_
"extensions=asc,csv,tab,txt;PersistSecurityInfo=false;"
11.MStextOLEDB毗连办法:
setadocon=Server.Createobject("adodb.connection")
adocon.open"Provider=microsof.jet.oledb.4.0;datasource=your_path;"&_
"ExtendedPropertiestext;FMT=Delimited"
<二>。经常使用的四种SQL命令:
1.查询数据纪录(Select)
语法:Select字段串行FromtableWhere字段=内容
例子:想从book表中找出作者为"cancer"的一切纪录,SQL语句便以下:
select*frombookwhereauthor=’cancer’
"*"是掏出book表一切的字段,如查询的字段值为数字,则厥后的"内容"便不必加上单引号,
如是日期,则在Access顶用(#)包含,而在SQLserver中则用(’)包含,
如:
select*frombookwhereid=1
select*frombookwherepub_date=#2002-1-7#(Access)
select*frombookwherepub_date=’2002-1-7’(SQLServer)
提醒:
日期函数to_date不是尺度sql文,不是一切的数据库合用,以是人人在利用的时分要参考数据库详细语法
别的假如是查询传进的变量,则以下:
strau=request.form("author")
strsql="select*frombookwhereauthor=’"&strau&"’"
假如查询的是数字,则:
intID=request.form("id")
strsql="select*frombookwhereid="&intID
在良多数据库中,如:oracle,下面的语句是能够写成:
strsql="select*frombookwhereid="&intID&""的。
可是字符型必定不克不及依照数字格局写,必要注重。
2.增加纪录(Insert)
语法:Insertintotable(field1,field2,....)Values(value1,value2,....)
例子:增加一作者是"cancer"的纪录进book表:
insertintobook(bookno,author,bookname)values(’CF001’,’cancer’,’Cancer无组件上传程序’)
一样,假如用到变量就以下:
strno=request.form("bookno")
strau=request.form("author")
strname=request.form("bookname")
strsql="insertintobook(bookno,author,bookname)values(’"&strno&"’,’"&strau&"’,’"&strname&"’)"
3.用Recordset工具的Addnew拔出数据的办法:
语法:
rs.addnew
rs("field1").value=value1
rs("field2").value=value2
...
rs.update
4.修正数据纪录(Update)
语法:updatetablesetfield1=value1,field2=value2,...wherefieldx=valuex
例子:updatebooksetauthor=’babycrazy’wherebookno=’CF001’
假如用到变量就以下:
strno=request.form("bookno")
strau=request.form("author")
strsql="updatebooksetauthor=’"&strau&"’wherebookno=’"&strno"’"
5.Recordset工具的Update办法:
语法:
rs("field1").value=value1
rs("field2").value=value2
...
rs.update
注重:利用语法3和语法5的时分,必定要注重字段的范例(特别是日期型)分歧,不然堕落的概率十分的高。

例子:
strno=request.form("bookno")
strau=request.form("author")
setadocon=server.createobject("adodb.connection")
adocon.open"Driver={MicrosoftAccessDriver(*.mdb)};DBQ="&_
Server.Mappath=("/cancer/cancer.mdb")
strsql="select*frombookwherebookno=’"&strno&"’"
setrs=server.createobject("adodb.recordset")
rs.openstrsql,adconn,1,3
ifnotrs.eofthen’假如有此纪录的话
rs("author").value=strau
rs.update
endif
rs.close
setrs=nothing
adocon.close
setadocon=nothing
6.删除一笔记录(Delete)
语法:Deletetablewherefield=value
例子:删除book表中作者是cancer的纪录
deletebookwhereauthor=’cancer’
(注重:假如book表中author字段的值为cancer的纪录有多条,将会删除一切author为cancer的纪录)
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。

飘飘悠悠 发表于 2015-1-18 23:04:18

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

老尸 发表于 2015-1-26 21:10:14

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

冷月葬花魂 发表于 2015-2-4 21:32:08

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

小女巫 发表于 2015-2-10 17:20:51

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

小妖女 发表于 2015-3-1 13:47:50

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

深爱那片海 发表于 2015-3-10 18:31:59

Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write

精灵巫婆 发表于 2015-3-24 05:48:42

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
页: [1]
查看完整版本: ASP网站制作之ASP经常使用数据库毗连及操纵的办法和技能