ASP与ACCESS数据库建立连接(附源码)
- 格式:pdf
- 大小:112.26 KB
- 文档页数:7
连接MSSQL代码(附加判断代码):引用内容<%dim cnset cn=server.createobject("adodb.connection")cn.connectionstring="driver={SQLserver};server=taihang;datebase=taihang;uid=sa;pwd=hacker"cn.openIf cn.state=1 Thenresponse.write"数据库连接对象已打开"Elseresponse.write"数据库连接对象未打开"end Ifcn.closeSet cn=nothing%>连接Access常用方法:引用内容Dim conn,strDataPath,connStrset conn=server.createobject("ADODB.connection") '//定义数据库连接对象strDataPath=server.MapPath("example.mdb") '//数据库路径字符串connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDataPath '//数据库连接conn.open connStr也可以用:引用内容Dim conn,strDataPath,connStrset conn=server.createobject("ADODB.connection") '//定义数据库连接对象strDataPath=server.MapPath("example.mdb") '//数据库路径字符串connStr="driver={Microsoft Access Driver (*.mdb)};dbq=" & strDataPath '//数据库连接conn.Open connStr注解:因为我们想打开的是Access(.mdb)数据库,所以我们要透过Access的ODBC驱动程序{Microsoft Access Driver (*.mdb)}来存取数据库,dbp参数则是用来指定想打开的数据库文件,因为它必须是完整路径名称,所以我们上一语句用了Server.MapPath 函数。
前言:如何通过ASP与数据库建立连接是一个非常现实的问题,我尽量写得非常详细。
相信看了这篇文章相信您已经能够写出类似的比较简单和实用的程序了。
(一)数据库的选择:有许多的数据库你可以选择,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储数据的功能。
那么到底选择什么数据库最合适呢?其中SQL SERVER是服务器级的,足以应付每天上万次的访问量。
对于非服务器级的数据库建议使用ACCESS97。
因为:(1)只要安装了PWS或IIS4肯定有ACCESS的ODBC驱动,即你的系统肯定支持ACCESS数据库的存取。
(2)ACCESS支持的SQL指令非常齐全。
(3)ACCESS ODBC驱动程序的效率非常高。
虽然它不是服务器级的数据库,但是作为中小型企业内部网的数据库支持还是绰绰有余的。
(4)ACCESS97在OFFICE97中就有,非常方便得到和使用。
本文就以ACCESS数据库为准介绍基于WEB的数据库存取方法。
(二)例子:我们建立一个“客户”数据库,需要保存如下的客户资料:客户名称、联络人姓名、所在城市、电话号码。
(1)首先建立ACCESS数据库customer.mdb(今后有用的)。
建立如下字段:客户名称、联络人姓名、所在城市、电话号码、客户编号、时间。
将表保存为"客户"(今后有用的,===>看看图)。
注意:建立字段时多作了2个(客户编号、时间),因为在今后排序时要用到它们。
建议今后做数据库时最好都加上这2项,不会没用的。
此外,在保存表时ACCESS会询问是否建立一个住关键字,我们不需要它所以不必建立。
还有:时间字段的"默认值"设成"now()",即去系统当时的时间。
同时将索引项设成"有(允许重复)",含义:WEB上极有可能同时存取数据,所以允许重复,索引设成"有"可以加快排序速度。
Asp连接access数据库时,报未知错误及错误码-2147467259的解决方案Asp连接access数据库时,报未知错误及错误码-21474672 59的解决方案ASP程序连接access数据库的代码如下:<%set conn=server.createobject("adodb.connection")'连接数据库的方法1:使用oledbstr="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("学习.mdb")conn.open str%>结果在服务器上运行该程序时提示如下错误:err.Number显示的是-2147467259,err.Description显示的是“未知错误”迷惑了很久,当时在课堂上一直找不到原因。
之前运行其他ASP 程序都是好好的,一遇到数据库就出错了。
很尴尬,跟学生解释说服务器出了点小问题,随后我解决了再告诉大家。
硬着头皮接着讲课,其实很心虚。
一下课,猛蹬着自行车回到家中,立马上网搜索答案。
找了很久,决定下次上课试试这些方法行不行。
下次上课我提早到教室。
心说这次解决不了那以后就回机房上课好了。
结果一次就成功了!欢呼!解决方案:为”C:\Windows\T emp“目录添加用户Authenticated Users,为该用户开放所有权限。
(1)WindowsXP、Windows 2003用户请在“C:\Windows\T emp”目录添加一个有权限的“Authenticated Users”用户即可!Vista用户请在“C:\Windows\ServiceProfiles\NetworkService\AppData\Local\T emp”目录添加一个有权限的“Authenticated Users”用户即可!具体设置权限步骤:右击T emp文件夹,选择“属性”->“安全”->“编辑”->“添加”,在下面的“输入对象名称来选择”中输入Authenticated Users,确定-> 返回到“Temp 的权限”,将Authenticated Users的权限中的完全控制给勾上。
ASP连接Access数据库几种常见方法在弹出来的“自定义连接字符串”对话框中,"连接名称"随便写一个。
“连接字符串”就要好好填写了。
当"使用此计算机上的驱动程序"时应用绝对路径:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\newgn\database\cnbruce.mdb否则“使用测试服务器上的驱动程序”采用Mappath转换路径:"Driver={Microsoft Access Driver (*.mdb)};DBQ="& server.mappath("/newgn/database/cnbruce.mdb")注:如果将要上传到网上去的页子就可以直接采用Mappath了点击“测试”,出现成功即爽。
附注:需要更多了解的,可以打开DW的帮助教程。
第一种连接和记录集分开声明<%db="db/darden.mdb"set conn=server.createobject("ADODB.connection")connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("" & db & "")conn.open connstr%><%set rs=server.createobject("adodb.recordset")sql="select * from ebook order by id desc"rs.open sql,conn,3,3rs.addnew............rs.update (rs.delete)rs.closeset rs=nothingconn.closeset conn=nothingresponse.write("<center><a href=viewdatabase.asp>显示文字</a></center>")Response.Redirect "homepage.asp"%>第二种连接和记录集一同声明<%set rs=server.createobject("adodb.recordset")sql="select * from ebook order by id desc"conn = "DBQ=" + server.mappath("book.mdb") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"rs.open sql,conn,3,3rs.addnew............rs.update (rs.delete)rs.closeset rs=nothingresponse.write("<center><a href=viewdatabase.asp>显示文字</a></center>")%>ASP数据库简单*作教程<1>.数据库连接(用来单独编制连接文件conn.asp)<%Set conn = Server.CreateObject(ADODB.Connection)conn.Open DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= & Server.MapPath(\bbs\db1\user.mdb)%>(用来连接bbs\db1\目录下的user.mdb数据库)<2>显示数据库记录原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录如果是从头到尾:用循环并判断指针是否到末使用: not rs.eof如果是从尾到头:用循环并判断指针是否到开始使用:not rs.bof <!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%set rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)rs.movefirst ---->(将指针移到第一条记录)while not rs.eof ---->(判断指针是否到末尾)response.write(rs(name)) ---->(显示数据表message中的name字段)rs.movenext ---->(将指针移动到下一条记录)wend ---->(循环结束)------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%>其中response对象是服务器向客户端浏览器发送的信息<3>增加数据库记录增加数据库记录用到rs.addnew,rs.update两个函数<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%set rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)rs.addnew 新增加一条记录rs(name)=xx 将xx的值传给name字段rs.update 刷新数据库------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%><4>删除一条记录删除数据库记录主要用到rs.delete,rs.update<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%dim namename=xxset rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)-------------------------------------------------------while not rs.eofif rs.(name)=name thenrs.deleters.update 查询数据表中的name字段的值是否等于变量name的值xx,如果符合就执行删除,else 否则继续查询,直到指针到末尾为止rs.movenextemd ifwend------------------------------------------------------------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%><5>关于数据库的查询(a) 查询字段为字符型<%dim user,pass,qq,mail,messageuser=request.Form(user)pass=request.Form(pass)qq=request.Form(qq)mail=request.Form(mail)message=request.Form(message)if trim(user)&x=x or trim(pass)&x=x then (检测user值和pass 值是否为空,可以检测到空格)response.write(注册信息不能为空)elseset rs=server.CreateObject(adodb.recordset)sqlstr=select * from user where user='&user&' (查询user数据表中的user字段其中user字段为字符型)rs.open sqlstr,conn,1,3if rs.eof thenrs.addnewrs(user)=userrs(pass)=passrs(qq)=qqrs(mail)=mailrs(message)=messagers.updaters.closeconn.closeset rs=nothingset conn=nothingresponse.write(注册成功)end ifrs.closeconn.closeset rs=nothingset conn=nothingresponse.write(注册重名)%>(b)查询字段为数字型<%dim numnum=request.Form(num)set rs=server.CreateObject(adodb.recordset)sqlstr=select * from message where id=&num (查询message 数据表中id字段的值是否与num相等,其中id为数字型) rs.open sqlstr,conn,1,3if not rs.eof thenrs.deleters.updaters.closeconn.closeset rs=nothingset conn=nothingresponse.write(删除成功)end ifrs.closeconn.closeset rs=nothingset conn=nothingresponse.write(删除失败)。
Asp连接access数据库时,报未知错误及错误码-2147467259的解决方案Asp连接access数据库时,报未知错误及错误码-2147467259的解决方案ASP程序连接access数据库的代码如下:<%set conn=server.createobject("adodb.connection")'连接数据库的方法1:使用oledbstr="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("学习.mdb")conn.open str%>结果在服务器上运行该程序时提示如下错误:err.Number显示的是-2147467259,err.Description显示的是“未知错误”迷惑了很久,当时在课堂上一直找不到原因。
之前运行其他ASP程序都是好好的,一遇到数据库就出错了。
很尴尬,跟学生解释说服务器出了点小问题,随后我解决了再告诉大家。
硬着头皮接着讲课,其实很心虚。
一下课,猛蹬着自行车回到家中,立马上网搜索答案。
找了很久,决定下次上课试试这些方法行不行。
下次上课我提早到教室。
心说这次解决不了那以后就回机房上课好了。
结果一次就成功了!欢呼!解决方案:为”C:\Windows\Temp“目录添加用户Authenticated Users,为该用户开放所有权限。
(1)WindowsXP、Windows 2003用户请在“C:\Windows\Temp”目录添加一个有权限的“Authenticated Users”用户即可!Vista用户请在“C:\Windows\ServiceProfiles\NetworkService\AppData\Loc al\Temp”目录添加一个有权限的“Authenticated Users”用户即可!具体设置权限步骤:右击Temp文件夹,选择“属性”->“安全”->“编辑”->“添加”,在下面的“输入对象名称来选择”中输入Authenticated Users,确定-> 返回到“Temp 的权限”,将Authenticated Users的权限中的完全控制给勾上。
1,首先确认站点根目录下有专门的数据库存放目录,比如d:\newgate下面的database文件夹(有则Ok,无则新建)。
接着打开Microsoft Access DBMS,"文件"---“新建...”数据库,在弹出的对话框中选择存放路径并命名。
2,在新建的数据库中“使用设计器创建表”,弹出的“表1”中设计你的相关字段,注意各自的“数据类型”,还有一点很重要:字段ID,类型自动编号,并选择它定为主键。
3,设计完“表1”后,直接关闭该窗口,在弹出对话框中点击“是”保存“表1”命名为user。
此时一点需要提到:刚刚强调的设置字段id相关是必须的,否则在保存之后还会出现如下对话框,其效果还是设置类型是自动编号的关键字段。
4,这时候数据库表user已经建立完毕。
5,双击数据库表user,小添试一下,在弹出的user表中输入相关内容。
关闭保存。
至此对数据库、表、字段的建立保存工作完毕。
下面就开始动用DW操纵mdb文件了。
ASP与Access数据库连接【操作步骤】一、创建站点1. 配置好IIS后,打开Dreamweaver,选择“站点”—“新建站点”,设置如下所示:2.选择“文件”—“新建”,新建一动态ASP VBScript网页。
二、创建数据库1. 在网站根目录下建立一个Database文件夹用于存放数据库文件。
创建一个Access数据库,将其命名为db1.mdb存放在Database文件夹中。
2.打开db1.mdb数据库,双击“使用设计器创建表”,打开创建数据表窗口,在“字段名称”中输入id,在数据类型中选择“自动编号”。
单击快捷菜单中图标,设置id字段为主键。
应用相同的步骤,继续添加完相应的字段并创建好其它数据表后。
Access数据库就创建好了。
三、连接数据库1.打开Dreamweaver,选中工具栏上“应用程序”选项,单击选项。
2.在打开的“记录集”对话框。
单击“定义……”,弹出链接到站点的对话框,单击“新建”按钮,选中“数据源名称<DSN)”选项。
3.在弹出的“数据源名称<DSN)”对话框中,单击“数据源名称<DSN)”中选择右边的“定义……”。
4.在弹出的“ODBC数据源管理器”对话框中选择“系统DSN”选项卡,选择“添加……”。
5.在弹出的对话框中选择“Microsoft Access Driver<*.mdb)”。
6.确定后在弹出的对话框里选择录入数据源名称,单击“选择”在弹出的“选择数据库”对话框中找到刚才我们建立的数据库,单击“确定”“确定”“确定”。
退回到“数据源名称<DSN)”对话框。
7.在“数据源名称<DSN)”对话框中选择“使用服务器上的DSN”,单击“DSN……”选择刚才新建立的数据源。
8.单击“测试”按钮,对数据源进行测试,测试成功后弹出成功创建连接脚本的对话框。
单击“确定”、“完成”,退回到“记录集”对话框。
9.在“连接”里选择刚才的数据库。
单击“确定”完成。
Asp操作ACC数据库一、首先是两个网页,一个用来收集用户如下图1.html二、另一个是接收并处理数据的页面,如下图2.asp注意,接收处理数据的页面必须是以asp接尾的文件(也就是我们所说的动态页面),否则无法接收。
图1注意,1.html中如下代码注意上面我选中的部份代码:action=””这里面就填上你用来处理数据的页面,也就是我们的2.asp了。
三、2.asp代码如下<!--#include file ="connet.asp"--><%b1=request.form("v1")b2=request.form("v2")response.write "变量值为" &b1&b2strquery="insert into b1(k1,k2)" & "values('"&b1&"','"&b2&"')"set objconn=server.createobject("adodb.connection")objconn.open whichDSNobjconn.execute(strquery)response.write " 成功"objconn.closeset objconn=nothing%>完成,注意,的第一句为包函文件connet.asp,这样定义是方便以后修改,我们看下connet.asp 的内容如下:<% whichDSN="driver={Microsoft Access Driver (*.mdb)};"whichDSN=whichDSN&"DBQ="&server.MapPath("data\db1.mdb")%>就这两句,第一句说明数据库是ACCESS的mdb文件。
ASP操作ACCESS数据库操作数据库请按照下面的步骤来操作。
一、建立一个ACCESS数据库,使用设计器设计一个表,加一个字段,字段名为ID,数据类型为自动编号,再增加一个字段,名字为NAME,数据类型为文本,然后保存,保存表名为BOOK。
关闭数据库,然后并把这个数据库文件名改为book.mdb。
二、建立一个文本文件,在里面输入如下信息<%' 连接数据库dim ConnStr,Conn,rs,iConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath("book.mdb") On Error Resume NextSet conn = Server.CreateObject("ADODB.Connection")Conn.Open ConnStrIf Err ThenErr.ClearSet Conn = Nothingresponse.write "数据库连接失败..."Response.End()End If'查询数据库Sql="select * from book order by id desc"Set Rs = Server.CreateObject("Adodb.RecordSet")Rs.Open Sql,Conn,1,1if RS.eof thenresponse.write "还没有数据"elsefor i=0 to Rs.recordcountif rs.eof then exit forresponse.write "ID:"&RS("id")&" 名字:"&RS("name")&""&chr(10)nextrs.closeconn.closeset rs=nothingset conn=nothingend if%>三、将这个文本文件保存并改成index.asp,再打开刚才的数据库,打开表book,在name 字段里面输入一些字符,然后关闭。
1.C#连接连接Access程序代码:-------------------------------------------------------------------------------using System.Data;using System.Data.OleDb;..string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";strConnection+=@"Data Source=C:BegASPNETNorthwind.mdb";OleDbConnection objConnection=new OleDbConnection(strConnection);..objConnection.Open();objConnection.Close();解释:连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源."Provider=Microsoft.Jet.OleDb.4.0;"是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,asp就是靠这个和Access的数据库连接的."Data Source=C:\BegASPNET\Northwind.mdb"是指明数据源的位置,他的标准形式是"Data Source=MyDrive:MyPath\MyFile.MDB".PS:1."+="后面的"@"符号是防止将后面字符串中的"\"解析为转义字符.2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:strConnection+="Data Source=";strConnection+=MapPath("Northwind.mdb");这样就可以省得你写一大堆东西了!3.要注意连接字符串中的参数之间要用分号来分隔."OleDbConnection objConnection=new OleDbConnection(strConnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道. "objConnection.Open();"这用来打开连接.至此,与Access数据库的连接完成.--------------------------------------------------------------------------------2.C#连接SQL Server程序代码:--------------------------------------------------------------------------------using System.Data;using System.Data.SqlClient;..string strConnection="user id=sa;password=;";strConnection+="initial catalog=Northwind;Server=YourSQLServer;";strConnection+="Connect Timeout=30";SqlConnection objConnection=new SqlConnection(strConnection);..objConnection.Open();objConnection.Close();解释:连接SQL Server数据库的机制与连接Access的机制没有什么太大的区别,只是改变了Conn ection对象和连接字符串中的不同参数.首先,连接SQL Server使用的命名空间不是"System.Data.OleDb",而是"System.Data.SqlClient ".其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔):"user id=sa":连接数据库的验证用户名为sa.他还有一个别名"uid",所以这句我们还可以写成"uid=sa"."password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".这里注意,你的SQL Server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的SQL Server设置为Windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录,而需要使用"Trusted_Connection=SSPI"来进行登录. "initial catalog=Northwind":使用的数据源为"Northwind"这个数据库.他的别名为"Database ",本句可以写成"Database=Northwind"."Server=YourSQLServer":使用名为"YourSQLServer"的服务器.他的别名为"Data Source"," Address","Addr".如果使用的是本地数据库且定义了实例名,则可以写为"Server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或IP地址."Connect Timeout=30":连接超时时间为30秒.在这里,建立连接对象用的构造函数为:SqlConnection.--------------------------------------------------------------------------------3.C#连接Oracle程序代码:--------------------------------------------------------------------------------using System.Data.OracleClient;using System.Data;//在窗体上添加一个按钮,叫Button1,双击Button1,输入以下代码private void Button1_Click(object sender, System.EventArgs e){string ConnectionString="Data Source=sky;user=system;password=manager;";//写连接串OracleConnection conn=new OracleConnection(ConnectionString);//创建一个新连接try{conn.Open();OracleCommand cmd=conn.CreateCommand();cmdmandText="select * from MyTable";//在这儿写sql语句OracleDataReader odr=cmd.ExecuteReader();//创建一个OracleDateReader对象while(odr.Read())//读取数据,如果odr.Read()返回为false的话,就说明到记录集的尾部了{Response.Write(odr.GetOracleString(1).ToString());//输出字段1,这个数是字段索引,具体怎么使用字段名还有待研究}odr.Close();}catch(Exception ee){Response.Write(ee.Message); //如果有错误,输出错误信息}finally{conn.Close(); //关闭连接}}-------------------------------------------------------------------------------4.C#连接MySQL程序代码:--------------------------------------------------------------------------------using MySQLDriverCS;// 建立数据库连接MySQLConnection DBConn;DBConn = new MySQLConnection(new MySQLConnectionString("localhost","mysql","root"," ",3306).AsString);DBConn.Open();// 执行查询语句MySQLCommand DBComm;DBComm = new MySQLCommand("select Host,User from user",DBConn);// 读取数据MySQLDataReader DBReader = DBComm.ExecuteReaderEx();try{while (DBReader.Read()){Console.WriteLine("Host = {0} and User = {1}", DBReader.GetString(0),DBReader.GetString (1));}}finally{DBReader.Close();DBConn.Close();}//关闭数据库连接DBConn.Close();--------------------------------------------------------------------------------5.C#连接IBM DB2程序代码:--------------------------------------------------------------------------------OleDbConnection1.Open();//打开数据库连接OleDbDataAdapter1.Fill(dataSet1,"Address");//将得来的数据填入dataSetDataGrid1.DataBind();OleDbConnection1.Close();//关闭连接//增加数据库数据在Web Form上新增对应字段数量个数的TextBox,及一个button,为该按键增加Click响应事件代码如下:this.OleDbInsertCommand1mandText = "INSERTsintosADDRESS(NAME,EMAIL, AGE, ADDRESS) VALUES('"+TextBox1.Text+"','"+TextBox2.Text+"','"+TextBox3.Text+"','"+TextBox4.Text+"')";OleDbInsertCommand1.Connection.Open();//打开连接OleDbInsertCommand1.ExecuteNonQuery();//执行该SQL语句OleDbInsertCommand1.Connection.Close();//关闭连接--------------------------------------------------------------------------------6.C#连接SyBase程序代码: (OleDb)--------------------------------------------------------------------------------Provider=Sybase.ASEOLEDBProvider.2;Initial Catalog=数据库名;User ID=用户名;Data Sour ce=数据源;Extended Properties="";Server Name=ip地址;Network Protocol=Winsock;Server P ort Address=5000;。