ASP访问数据库步骤
在ASP中,使用ADO组件访问后台数据库,可通过以下步骤进行:
1. 定义数据源
在WEB服务器上打开“控制面板”,选中“ODBC”,在“系统DSN”下选“添加”,选定你希望的数据库种类、名称、位置等。本文定义“SQL SERVER”,数据源为“HT”,数据库名称为“HTDATA”,脚本语言采用Jscript。
2,使用ADO组件查询WEB数据库
1) 调用Server.CreateObject方法取得“ADODB.Connection”的实例,再使用Open方法打开数据库:
conn = Server.CreateObject(“ADODB.Connection”)
conn.Open(“HT”)
2) 指定要执行的SQL命令
连接数据库后,可对数据库操作,如查询,修改,删除等,这些都是通过SQL指令来完成的,如要在数据表signaltab中查询代码中含有“X”的记录
sqlStr = “select * from signaltab where code like ‘%X%’”
rs = conn.Execute(sqlStr)
3) 使用RecordSet属性和方法,并显示结果
为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据。
rs = Server.CreateObject(“ADODB.RecordSet”)
rs.Open(sqlStr,conn,1,A)
注:A=1读取
A=3 新增、修改、删除
在RecordSet组件中,常用的属性和方法有:
rs.Fields.Count: RecordSet对象的字段数。
rs(i).Name: 第i个字段的名称,i为0至rs.Fields.Count-1
rs(i): 第i个字段的数据,i为0至rs.Fields.Count-1
rs("字段名"): 指定字段的数据。
rs.Record.Count:游标中的数据记录总数。
rs.EOF: 是否最后一条记录。
rs.MoveFirst: 指向第一条记录。
rs.MoveLast: 指向最后一条记录。
rs.MovePrev: 指向上一条记录。
rs.MoveNext: 指向下一条记录。
rs.GetRows: 将数据放入数组中。
rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
rs.Properties(item).Name:ADO的ResultSet或Connection的名称。
rs.Properties: ADO的ResultSet或Connection的值。
rs.close(): 关闭连接。
4) 关闭数据库
conn.close()
ASP中数据库连接方法
http://hi.baidu.com/yakoo%5F/blog/item/82950a33114524f91a4cff9d.html
在access中连接时可以按如下方式:
database="../chap06/DataBase.mdb"
strConn="provider=Microsoft.jet.oledb.4.0;data source="&Server.MapPath(database)
set conn=server.CreateObject("ADODB.Connection")
conn.open strConn
事物处理
database="../chap06/DataBase.mdb"
strconn="provider=Microsoft.jet.oledb.4.0;data source="&server.MapPath(database)
set conn=server.CreateObject("ADODB.connection")
conn.open strconn
conn.begintrans() '开始事物处理
conn.execute("update user_info set uname='abc' where uid=1")
conn.execute("update user_info set uname='abc' where uid=2")
conn.committrans() '结束事物处理
conn.close
在执行sql语句中当有涉及到修改语句的时候,当出现错误不能删除或者没有权限等情况(0x80004005)
解决方法总结:
1.现示文件的“安全”选项标签:
控制面板——>文件夹选项——>查看——>不勾选“使用简单文件夹共享”——>应用确定
2.将数据库文件的权限修改:(修改和写入)
获取数据库中数据例
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from user_info",myconn,1,1
response.Write("<table border=1>")
response.Write("<tr><td>编号</td><td>用户名</td><td>密码</td></tr>")
do while not rs.eof
response.Write("<tr><td>"&rs("uid")&"</td><td>"&rs("uname")&"</td><td>"&rs("upassword")&"</td></tr>")
rs.movenext
loop
response.Write("</table>")
rs.close