数据库asp的读取和写入
- 格式:docx
- 大小:59.41 KB
- 文档页数:3
ASP如何读写一个文本文件利用Active Server Pages脚本,你就几乎完全可以控制服务器的文件系统。
需要如下的组件:■FileSystemObject:这个对象包括了一些基本的对文件系统进行操作的方法,比如说,复制和删除文件夹或者文件■TextStream:这个对象用来读写文件■File:它的方法和属性被用来处理单独的文件。
■Folder:它的方法和属性被用来处理文件夹。
这部分介绍如何读写一个文本文件。
这对文本文件有很多用处,包括下面这些。
■一个常用的日志,利用文本文件记录访问者的活动以供日后参考。
你可以记录诸如访问者IP地址,浏览器类型等等你能得到而且想要了解的东西。
■Form中的数据,你可以将用户在Form的文本框中填写的东西记入文本文件,尽管使用数据库会更加有效。
■每日新闻,将每日的新消息记录到文本文件,然后可以在很多文件中读出来显示对文本文件的写操作要创建并且写入一个文本文件,你应当使用FileSystemObject和TextStream对象。
首先,你需要创建一个FileSystemObject对象的事例,然后,再利用CreateTextFile()以该事例创建一个T extStream 对象的事例,最后利用TextStream对象的WriteLine()方法来写入文件。
下面是这个例子:<%SetMyFileObject=Server.CreateObject(“Scripting.FileSystemObject ”)SetMyTextFi le=MyFileObject.CreateTextFile(“c://mydir//test.txt”) MyTextFile.WriteLine(“欢迎进入迈至科网络ASP教程文件操作示例!”MytextFile.Close%>这个例子创建了一个名字为test.txt的文件,该文件位于c://mydir//,WriteLine()方法被用来将那一句话写入该文件。
ASP对数据库的操作ASP(Active Server Pages)是一种用于创建动态网页的编程技术,它可以通过与数据库进行交互来动态地显示、检索、更新和删除数据。
在下面的文章中,将介绍ASP对数据库的操作的一些常见技术和方法。
一、数据库连接在ASP中,连接到数据库是第一步。
可以使用以下步骤进行数据库连接:1. 引用ADO库:ADO(ActiveX Data Objects)是一种用于访问数据库的COM组件。
因此,首先需要在ASP页面的开头引用ADO库,例如:```asp<!--#include virtual="/adovbs.inc"-->```2. 创建Connection对象:使用以下代码创建一个Connection对象:```aspDim connSet conn = Server.CreateObject("ADODB.Connection")```3. 打开数据库连接:使用Open方法打开数据库连接,并指定数据库驱动程序和连接字符串,例如:```aspconn.Open "DRIVER={SQLServer};SERVER=server_name;DATABASE=db_name;UID=user_name;PWD=pa ssword;"```二、查询数据一般来说,查询数据是ASP对数据库进行的最常见的操作之一、可以使用以下步骤查询数据库:1. 创建Recordset对象:使用以下代码创建一个Recordset对象:```aspDim rsSet rs = Server.CreateObject("ADODB.Recordset")```2. 执行SQL语句:使用Open方法执行SQL语句,并使用Recordset 对象接收返回的数据,例如:```asprs.Open "SELECT * FROM table_name", conn```3. 读取数据:使用MoveNext和EOF方法循环读取Recordset对象的数据,例如:```aspDo While Not rs.EOFResponse.Write rs("column_name")rs.MoveNextLoop```4. 关闭Recordset对象:使用Close方法关闭Recordset对象,例如:```asprs.CloseSet rs = Nothing```三、插入数据除了查询数据,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上极有可能同时存取数据,所以允许重复,索引设成"有"可以加快排序速度。
===>看看图(2)建立递交表单add.htm:源代码如下:<html><head><title>添加数据库记录</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFFFFF"><p align="center"><font size="5">添加数据库记录</font></p><form method="post" action="adddatabase.asp"><div align="center"><table width="46%" border="0"><tr><td width="28%"><div align="right">公司名称:</div></td><td width="72%"><input type="text" name="CompanyName"></td></tr><tr><td width="28%"><div align="right">联络人姓名:</div></td><td width="72%"><input type="text" name="CName"></td></tr><tr><td width="28%"><div align="right">所在城市:</div></td><td width="72%"><input type="text" name="City"></td></tr><tr><td width="28%"><div align="right">电话号码:</div></td><td width="72%"><input type="text" name="Tel"></td></tr><tr><td width="28%"><div align="right"> </div></td><td width="72%"><input type="submit" name="Submit" value="Submit"> <input type="reset" name="reset" value="Reset"></td></tr></table></div></form></body></html>这与普通的HTML没有任何区别,关键部分已经用红色标记了。
ASP 文件内容操作在了解了TextStream对象提供的属性和方法之后,本节会使用这些方法对文件进行读写以实现常用的操作。
在开始之前,首先介绍一下如何创建TextStream对象。
ASP可以使用3种方法创建或者打开一个文本文件并返回TextStram对象。
1)CreateTextFile(filename,overwrite,unicode)说明见表3-3所示。
2)OpenTextFile(filename,iomode,create,format)说明见表3-3所示。
3)OpenAsTextStream(iomode,format)打开一个指定的文件并且返回一个TextStream对象,可用于对该文件的读、写或者追加。
iomode参数说明了需要的访问类型,可选值有ForReading(1)(默认)、Fo rWriting(2)、ForAppending(8)。
Format参数说明了读写文件的数据格式,可选值有T ristateFalse(0)(默认),说明用ASCII数据格式;TristateTrue(-1)说明用Unicode数据格式;TristateUseDefault(-2)说明使用系统默认的格式。
1.显示文件内容下面是第一个程序,该程序将创建一个文本文件“my.txt”并向该文件中写入文本,然后将写入的文本读出并在浏览器上显示出来。
程序运行效果如图3-10所示。
图3-10 读取文件内容该程序使用FileSystemObject对象的CreateTextFile方法在当前目录上创建了一个文本文件“my.txt”,使用与之对应的TextStream对象实例tsObj的writeLine方法向该文件中写入了一行数据;TextStream对象的Close方法可以关闭与TextStream 对象实例相对应的文本文件。
通过使用TextStream对象还可以读取文件的部分内容。
例如,下面的代码在上执行上述代码后,显示的内容如下:现在,如果要读取文件中从某一部分开始到最后的内容,则可以使用TextStrea m对象的Skip()方法。
Asp连接读取excel内容并导入到数据库asp连接excelSet connnew = Server.CreateObject("ADODB.Connection")'hdr取值yes,no ,表示第一行是否为字段名connStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(“test.xls”)&";Extended Properties='Excel 8.0;HDR=No;IMEX=1';"connnew.open connstrSet rsnew=Server.CreateObject("ADODB.Recordset")'Sheet1为excel里面的表名,表名后面一定要加$sqlnew = "select * from [Sheet1$]"rsnew.open sqlnew,connnew,1,1'rows是读取的excel里面数据的行数rows=rsnew.recordcount'cells是读取excel里面数据的列数cells=rsnew.Fields.Count输出记录集rsnew里面的数据,规则是这样的:如果HDR赋值是No的话rsnew(0)输出的是excel里第一行第一列的内容如果HDR赋值是Yes的话rsnew(0)输出的是excel里第二行第一列的内容如果想输出第二行的内容,只需在语句前加rsnew.movenext输出就这么简单的完成了!连接网站数据库,相信各位程序猿都已经会了。
要做的就是用sql语句判断要导入的数据是否存在,存在用update修改一下。
不存在的话addnew重新插入一条即可。
如果想要实现上传excel后导入的话,可以加上一个上传程序,将上传后的excel 路径传输到asp连接excel的字符串里面。
asp页⾯中的checkbox循环读取并插⼊数据库⾥的思路选取多个checkbox删除的语句是:delete from Table where ID in request.form("ID")如果是⼀个form表单,⾥⾯有⼀些输⼊框,另外有⼀个checkbox有很多选择框,选中checkbox的checked之后,我要把选中的值和其他⼀些表单⾥的信息写到数据库⾥,怎么操作呢?思路如下:假设a.asp 有⼀个<input type="checkbox" name="id" value="变量ID">这⾥ID值不同,⼤概有⼏⼗个选项吧。
form到b.asp⾥,那么b.asp⾥⾸先要做的是a.asp⾥选中了多少个id为checkbox为checked状态。
语法如下:Count=request.form("id").count假设计算出来Count为35,则说明有35个name为id的checkbox选中的,也就是说插⼊数据库⾥需要写⼊35条数据,循环如下:for i=1 to CountID=request.form("id")(i)这⾥是sql的普通插⼊语句,上⾯的ID为当选中的记录为i时,读取第i的条件时,id变量值next还有⼀种⽅法⼤致相同只不过得到循环次数的⽅法不同,简单介绍⼀下我有很多个checkbox在表单⾥⾯,name的名字都⼀样,希望能多选,然后写进数据库。
然后我想了⼀下,决定循环读取dim sql,project_id,expert_name,expert_nameStrproject_id=request.form("project_id")expert_nameStr=request.form("expert_name")expert_nameStr=split(expert_nameStr,",") ''split函数将得到的字符创以逗号为分割对象将expert_nameStr分开for i=0 to ubound(expert_nameStr) '''ubound函数得到分开后的字符串的最⼤数expert_name=expert_nameStr(i)Set Rs = server.createobject("ADODB.Recordset")sql="select * from pingfen where pingfen_project_id="&project_idrs.open sql,conn,1,3if rs.eof thensql="insert into pingfen (pingfen_project_id,pingfen_expert_name) values ('"&project_id&"','"&expert_name&"')"conn.execute(sql)elsers("pingfen_expert_name")=expert_namesql="update pingfen set pingfen_expert_name='"&expert_name&"'where pingfen_project_id="&project_idconn.execute(sql)end ifNextCall AlertAndJump("操作成功!","../admin/fenpeizhuanjia.asp","smile")。
我的ASP经验之路(5)—ASP如何进行数据库写入操作数据库名为data.mdb,数据库里面已经有3条记录了,那是手工打开表添加进去的,那么用ASP怎么样插入数据库呢?为了条理更清晰写,我们将他分成三个部分:分别为提交数据页面、保存数据页面、读取数据页面。
1、提交数据表单的页面我们将其命名为index.htm 代码如下:<html><head><title>提交数据</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><form name="form1" method="post" action="SaveData.asp"><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td width="31%" height="26"><div align="right">公司名称:</div></td><td width="69%"><input name="companyname" type="text" id="companyname"></td></tr><tr><td height="26"><div align="right">电话:</div></td><td><input name="tel" type="text" id="tel"></td></tr><tr><td height="26"><div align="right">地址:</div></td><td><input name="address" type="text" id="address"></td></tr><tr><td height="26"><div align="right">网址:</div></td><td><input name="website" type="text" id="website"></td></tr><tr><td height="30"> </td><td><input type="submit" name="Submit" value="提交"></td></tr></table></form></body></html>2、保存数据页面我们将其命名为savedata.asp这个文件我们将结合前面说过的request对象来取得表单的值,然后保存写入数据库,所有代码如下:<%dim conndim connstrconnstr="DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"set conn=server.createobject("ADODB.CONNECTION") '创建数据库连接对象conn.open connstr '连接数据库'取得表单数据companyname=request.form("companyname") '把文本框companyname的值赋于变量companynametel=request.form("tel") '把文本框tel的值赋于变量teladdress=request.form("address") '把文本框address的值赋于变量addresswebsite=request.form("website") '把文本框website的值赋于变量websiteset rs=server.CreateObject("adodb.recordset") '创建rs记录集sql="select * from [company]" '读取数据库的SQL语句串rs.open sql,conn,3,3 '打开记录集,当需要对数据库进行更新操作时,用3,3,如果只需要读取数据库,用1,1 这个以后会解释。
ASP对数据库的操作ASP(Active Server Pages)是一种用于构建动态网站的服务器端脚本语言。
在ASP中,我们可以使用一些内置对象和方法来与数据库进行交互。
下面将介绍ASP中对数据库的操作。
1.连接数据库:在ASP中,我们可以使用ADO(ActiveX Data Objects)来连接数据库。
ADO提供了一组对象和方法,用于连接不同类型的数据库。
以下是连接数据库的基本步骤:- 创建ADO对象:通过创建一个ADO对象来连接数据库。
常用的ADO 对象包括Connection、Recordset等。
-设置连接字符串:连接字符串包含了连接数据库所需的信息,如数据库类型、服务器名、用户名、密码等。
可以根据不同数据库类型设置不同的连接字符串。
- 打开数据库连接:使用Connection对象的Open方法来打开数据库连接。
2.执行SQL语句:在连接好数据库后,我们可以执行SQL语句来对数据库进行操作。
ASP提供了几种方法来执行SQL语句:- Execute方法:使用Connection对象的Execute方法可以执行任意SQL语句,如插入、更新、删除等。
执行后返回受影响的行数。
- ExecuteScalar方法:用于执行查询语句,并返回查询结果的第一行第一列的值,适用于单个结果的查询。
- ExecuteReader方法:用于执行查询语句,并返回一个DataReader 对象,适用于多个结果的查询。
3.事务处理:在数据库操作中,有时需要保证一系列的操作要么全部成功,要么全部失败,这时可以使用事务来管理操作。
ASP中有以下几个方法可用于事务处理:- BeginTrans方法:用于开始一个事务。
- RollbackTrans方法:用于回滚事务,撤销之前的操作。
4.数据库查询结果处理:在执行查询语句后,我们需要获取查询结果并进行相应处理。
ASP提供了Recordset对象来处理数据库查询结果:- MoveNext方法:用于将指针移动到结果集的下一行。
ASP读取数据库问题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-1rs(i):第i个字段的数据,i为0至rs.Fields.Count-1rs("字段名"):指定字段的数据。
rs.RecordCount:数据记录总数。
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():关闭连接。
属性和方法分开列出属性:AbsolutePage属性:当RecordSet对象设有分页时,返回当前页码。
AbsolutePosition属性:当前指针的绝对位置。
ActiveConnection属性:指明进行SQL语句的数据库连接。
EOF属性:若指针位于第一条记录之前,返回TRUE、否则返回FALSE。
Bookmark属性:将指针设置在某条记录。
CursorLocation属性:设置或返回光标提供者的位置,若设为2(adUseServer)表示使用服务器端光标(默认);若设为3(adUseClient)表示使用浏览器端光标。
ASP操作数据库ASP操作数据库的一般顺序:打开数据库->打开SQL记录集->操作数据->关闭记录集->关闭数据库一 ASP操作数据库我们今晚的内容,要用到ASP的一个对象server例如server.createobject("ADODB.Connection") 就是建立一个对象拿一个列子来说明下dim ConnStr '[定义变量]DbName=”data/dvbbs7.mdb”Db=Server.MapPath(DbName)'[这是取得数据库DbName的物理路径]ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Db'[数据库的连接字符串]Set Conn=Server.CreateObject("ADODB.Connection")'[首先得先建立一个Connection对象] Conn.open ConnStr'[打开数据库]这样对象conn就可以使用了Provider=Microsoft.Jet.OLEDB.4.0表示用的是oledb驱动打开access数据库虽然还有另外一个ODBC的驱动,但是不建议使用它,它太旧了Data Source=" & Db这是就是指定access数据库mdb文件的物理路径一般来说,我们只知道mdb文件相对于当前目录的路径所以,我们需要利用Db=Server.MapPath(DbName)这个来驱动相对路径DbName的物理路径例如dim conn,connstr,dbname,dbSet Conn=Server.CreateObject("ADODB.Connection")DbName = "data/dvbbs7.mdb"Db=Server.MapPath(DbName)ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DbConn.open ConnStr这就是打开一个access数据库的一般方法注意:Data Source=" & Db 物理路径就是,从盘符开始的路径打开数据库的文件名为conn.asp可以随便更改文件名Provider=Microsoft.Jet.OLEDB.4.0;Data Source="是规定链接字符串,后面要连一个字符串变量,引号到这里db是数据库mdb文件的绝对物理路径Microsoft.Jet.OLEDB.4.0;这个驱动是每个机器都附带的oledb比odbc大概快100倍 ,同时OLEDB比旧驱动多很多功能二数据集操作数据集用另外一个adodb的对象Dim Rs,SqlSet Rs=Server.CreateObject("ADODB.RecordSet")定义一个变量rs,当然变量名随便你用了这里我定义的是rs 这是创建一个记录集对象一般习惯用rs相关的,这是网上大家默认的标准了在数据库的操作中我们一般是这样操作的打开一个数据库连接对象利用这个连接对象执行SQL,返回一个记录集对象然后,就可以利用这个记录集对象操作数据库了所以,这一步,我们就是利用连接对象来打开SQL记录集Sql="Select * from [admin]"Rs.Open Sql,conn,1,1这两行一是赋值一个SQL语句二是打开这个SQL语句的记录集记录集对象rs的open方法有四个参数:第一是SQL字符串,二是Connection链接对象(必须是已经打开的) 三四是1,1先记住是1,1不要问为什么,你记住是这个就行,不要看书上的,书上的说得太复杂了Sql="Select * from [Dv_admin]"这个就是SQL语句,引号里面的意思是,读取表Dv_admin中的所有记录(就是一条条数据)至此,到OPEN这里if not rs.eof thenresponse.write rs("username")end if我们可以这样来读取数据库里面的数据了rs.eof就是利用记录集的eof属性,判断是否返回了数据也就是说,即使你用了rs.open可能并没有得到任何数据,因为数据库里面可能根本就没有数据所以要用eof判断eof为真,表明没有数据我们这里 not rs.eof表明有数据的时候才执行里面的语句response.write rs("username")这是显示语句显示rs("username")rs("username")就是读取rs记录集中,username字段的数据所以,整个程序是:意思就是,读取并显示数据库dvbbs7.mdb中,表Dv_admin中,username字段的数据注意:Sql="Select * from [admin]" *表示读取所有字段的数据open三四参数:1,1读 1,3更新一般来说,不可以用关键字做表名但是,有时候又不记得是不是关键字所以加[] 加了[]就不怕一些关键字了rs只是很多程序员的默认的习惯而已,只要你也这样用,大家一看就知道是记录集对象,程序易读性非常强RS是RECORDSET的宿写我们换一个比较直观的数据表Sql="Select * from [Dv_User]"Rs.Open Sql,conn,1,1我们这次打开Dv_User表这个表数据多一点先给大家看看数据显示的是nnhy得去得到的是第一条记录数据说到记录集,的确是一个很"专业"的名词我们就说是一个表吧,其实,一个表也是一个记录集Sql="Select * from [Dv_User]"Rs.Open Sql,conn,1,1这个Sql语句,得到的记录集(记录集由Sql语句决定)其实就是整个Dv_User表我们再改改Sql="Select username from [Dv_User]"这样就是只得到UserName这个字段的数据这个Sql的记录集也是一个表,这个表只有一个数据字段,就是UserName里面有很多数据,就是从Dv_User中的UserName字段来了这图片,左边的就是这个记录集的数据右边的就是Dv_User表中的数据大家可以对比看看有什么不同右边的表我只截取了一部分而已右边的表有很多字段而左边的只有username一个select username的意思就是只选择username字段的数据但是,我们刷新访问conn.asp就会发现,怎么还是只显示nnhy一个呢这里涉及一个当前记录的问题大家可以看到,左边的username有很多记录每一行就是一条记录我们打开记录集的时候,第一条记录将会作为当前记录所以我们response.write rs("username")的时候得到的只是第一条记录的username字段的数据nnhy我们只需要想办法把记录下移,就可以读取下面的数据了现在我改一下程序Sql="Select username from [Dv_User]"Rs.Open Sql,conn,1,1while not rs.eofresponse.write rs("username")rs.movenextwend用了一个while循环rs.movenext的作用,正是把记录指针往下面移动rs.eof其实就是判断,指针是不是已经到了(最后一条记录)的后面,要是到了,那么就表明后面没有数据啦,不用继续读取啦要是没到not rs.eof,就继续读取现在看看运行效果这些就是NewLife论坛的所有用户名为什么那么乱呢因为我们仅仅是response.write rs("username")直接输出而已没有做格式的变换下面再改一下程序,让它们分开response.write rs("username") & ""加了br是HTML标记就是换行的意思下面看看效果很好,完全按照我们的要求来显示了整个程序是就是这样子注意:先set再open 先close再set nothingopen对应closeconn是关闭连接,还可以conn.open重新打开关闭数据库是为了节省资源,同时也是为了释放对数据库文件的锁定下面是一个比较复杂的SQL语句,不再详细讲了,大家自己下载前面的SQL教程看看吧主要看select语句,还有delect和insert into和update set这几个,别的很少用select username from [Dv_User] where UserName='nnhy' 这个SQL。
一、利用ASP和ADO实现数据库操作的工作流程ASP内嵌了五个对象Resquest、Response、Server、Seesion、Application,实现信息的获取、传送及保存等。
ADO的主要对象有Connection、Command、Recordset等。
利用ADO的Connection 对象和ODBC的设定,可以建立与多种数据库(Informix、Oracle、Access等)的连接,从而实现数据的输入、查询、更新等操作。
首先,利用ASP 的Server对象的CreateObject方法创建一个ADO的对象实例,以ADO的Connection对象建立相应数据库与应用程序之间的联接;接着,通过Command对象将数据请求的SQL (Standard Query Language)标准描述语句指定到Command对象的属性,然后执行数据库的输入、查询等操作;最后,数据库服务器将响应的数据结果存储到Recordset对象,在服务器端的脚本语言环境中就可以加以处理、分析、显示数据于客户端浏览器上。
二、实现数据输入、查询的实例公司的分支机构众多、分布广泛,上级机构经常要对各基层机构的业务数据进行汇总,统计。
以前主要是通过电话上报数据,然后手工汇总、统计,编制成报表。
随着公司内部的联网,就可以将网络技术和数据库技术结合,将数据的汇总、统计实现自动化。
以下将结合公司的实际,通过与Informix数据库的连接实现此功能:本教程来自/article/html/28021.html1.创建数据库在UNIX操作系统上创建一个用于数据汇总、统计的数据库,将数据库命名为cxdb,在此数据库上创建如下表:Create table test(br char(6), #单位代码dt date, #日期sco money,#业绩)2.连接数据库在WINDOWS98操作系统上,安装数据库连接驱动程序Informix-CLI,并运行Informix-CLI的SetNet32进行配置,然后运行Ilogin 32 Demo 测试配置是否正确。
ASP与数据库-连接、写入、修改、删除、显示代码Recordset属性与方法PageCount 属性: 决定 Recordset 对象包括多少“页”的数据。
这里的“页”是数据记录的集合,大小等于 PageSize 属性的设定,即使最后一页的记录数比 PageSize 的值少,最后一页也算是 PageCount 的一页。
必须注意也并不是所有的数据提供者都支持此项属性。
PageSize 属性:显示 Recordset 对象每一页显示的记录数。
PageSize 属性是决定 ADO 存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“一页”。
设定并建立一个页的大小,从而允许使用 AbsolutePage 属性移到其它逻辑页的第一条记录。
PageSize 属性能随时被设定。
RecordCount 属性:显示 Recordset 对象记录的总数。
rs.RecordCount:游标中的数据记录总数。
rs.MoveFirst:指向第一条记录。
rs.Move(6): 移动到第6条记录。
rs.MoveLast:指向最后一条记录。
rs.MovePrev:指向上一条记录。
rs.MoveNext:指向下一条记录。
rs.GetRows:将数据放入数组中Recordset对象的Open函数:Rs.Open 数据表名称或SQL指令,Connection对象,Recordset类型,锁定类型参数一:若指定成数据表名称,则打开整个数据表,若指定成Select指令,则所建立的Recordset对象是Select指令选取的数据记录的结果。
参数二:传入某一个已打开的数据库的Connection对象。
参数三:是Recordset类型,它含有下表的四种设置值:Recordset类型的设置值意义AdOpenForwardOnly(=0) 只读,且当前数据记录只能向下移动AdOpenStatic(=3) 只读,当前数据记录可自由移动AdOpenKeyset(=1) 可读写,当前数据记录可自由移动AdOpenDynamic(=2) 可读写,当前数据记录可自由移动AdOpenKeyset和AdOpenDynamic的差别只表现在多人共用数据库时,若以AdOpenKeyset 模式打开数据表,则无法看到其他人新增的数据记录(除非重新启动),如果是以AdOpenDynamic模式打开数据库,则可以看到其他人新增的数据记录。
ASP读取数据库问题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-1rs(i):第i个字段的数据,i为0至rs.Fields.Count-1rs("字段名"):指定字段的数据。
rs.RecordCount:数据记录总数。
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():关闭连接。
属性和方法分开列出属性:AbsolutePage属性:当RecordSet对象设有分页时,返回当前页码。
AbsolutePosition属性:当前指针的绝对位置。
ActiveConnection属性:指明进行SQL语句的数据库连接。
EOF属性:若指针位于第一条记录之前,返回TRUE、否则返回FALSE。
Bookmark属性:将指针设置在某条记录。
CursorLocation属性:设置或返回光标提供者的位置,若设为2(adUseServer)表示使用服务器端光标(默认);若设为3(adUseClient)表示使用浏览器端光标。
AspNet 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小.txt心脏是一座有两间卧室的房子,一间住着痛苦,一间住着快乐。
人不能笑得太响,否则会吵醒隔壁的痛苦。
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Text;using System.IO;namespace EC{/// <summary>/// FileObj 的摘要说明/// </summary>public class FileObj{#region 构造函数private bool _alreadyDispose = false;public FileObj(){//// TODO: 在此处添加构造函数逻辑//}~FileObj(){Dispose(); ;}protected virtual void Dispose(bool isDisposing){if (_alreadyDispose) return;//if (isDisposing)//{// if (xml != null)// {// xml = null;// }//}_alreadyDispose = true;}#endregion#region IDisposable 成员public void Dispose(){Dispose(true);GC.SuppressFinalize(this);}#endregion#region 取得文件后缀名/***************************************** 函数名称:GetPostfixStr* 功能说明:取得文件后缀名* 参数:filename:文件名称* 调用示列:* string filename = "aaa.aspx";* string s = EC.FileObj.GetPostfixStr(filename); *****************************************//// <summary>/// 取后缀名/// </summary>/// <param name="filename">文件名</param>/// <returns>.gif|.html格式</returns>public static string GetPostfixStr(string filename){int start = stIndexOf(".");int length = filename.Length;string postfix = filename.Substring(start, length - start);return postfix;}#endregion#region 写文件/***************************************** 函数名称:WriteFile* 功能说明:当文件不存时,则创建文件,并追加文件* 参数:Path:文件路径,Strings:文本内容* 调用示列:* string Path = Server.MapPath("Default2.aspx");* string Strings = "这是我写的内容啊";* EC.FileObj.WriteFile(Path,Strings);*****************************************//// <summary>/// 写文件/// </summary>/// <param name="Path">文件路径</param>/// <param name="Strings">文件内容</param>public static void WriteFile(string Path, string Strings){if (!System.IO.File.Exists(Path)){//Directory.CreateDirectory(Path);System.IO.FileStream f = System.IO.File.Create(Path);f.Close();f.Dispose();}System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, true, System.Text.Encoding.UTF8);f2.WriteLine(Strings);f2.Close();f2.Dispose();}#endregion#region 读文件/***************************************** 函数名称:ReadFile* 功能说明:读取文本内容* 参数:Path:文件路径* 调用示列:* string Path = Server.MapPath("Default2.aspx");* string s = EC.FileObj.ReadFile(Path);*****************************************//// <summary>/// 读文件/// </summary>/// <param name="Path">文件路径</param>/// <returns></returns>public static string ReadFile(string Path){string s = "";if (!System.IO.File.Exists(Path))s = "不存在相应的目录";else{StreamReader f2 = new StreamReader(Path, System.Text.Encoding.GetEncoding("gb2312"));s = f2.ReadToEnd();f2.Close();f2.Dispose();}return s;}#endregion#region 追加文件/***************************************** 函数名称:FileAdd* 功能说明:追加文件内容* 参数:Path:文件路径,strings:内容* 调用示列:* string Path = Server.MapPath("Default2.aspx");* string Strings = "新追加内容";* EC.FileObj.FileAdd(Path, Strings);*****************************************//// <summary>/// 追加文件/// </summary>/// <param name="Path">文件路径</param>/// <param name="strings">内容</param>public static void FileAdd(string Path, string strings){StreamWriter sw = File.AppendText(Path);sw.Write(strings);sw.Flush();sw.Close();sw.Dispose();}#endregion#region 拷贝文件/***************************************** 函数名称:FileCoppy* 功能说明:拷贝文件* 参数:OrignFile:原始文件,NewFile:新文件路径* 调用示列:* string OrignFile = Server.MapPath("Default2.aspx"); * string NewFile = Server.MapPath("Default3.aspx");* EC.FileObj.FileCoppy(OrignFile, NewFile);*****************************************//// <summary>/// 拷贝文件/// </summary>/// <param name="OrignFile">原始文件</param>/// <param name="NewFile">新文件路径</param>public static void FileCoppy(string OrignFile, string NewFile){File.Copy(OrignFile, NewFile, true);}#endregion#region 删除文件/***************************************** 函数名称:FileDel* 功能说明:删除文件* 参数:Path:文件路径* 调用示列:* string Path = Server.MapPath("Default3.aspx");* EC.FileObj.FileDel(Path);*****************************************//// <summary>/// 删除文件/// </summary>/// <param name="Path">路径</param>public static void FileDel(string Path){File.Delete(Path);}#endregion#region 移动文件/***************************************** 函数名称:FileMove* 功能说明:移动文件* 参数:OrignFile:原始路径,NewFile:新文件路径* 调用示列:* string OrignFile = Server.MapPath("../说明.txt"); * string NewFile = Server.MapPath("../../说明.txt");* EC.FileObj.FileMove(OrignFile, NewFile);*****************************************//// <summary>/// 移动文件/// </summary>/// <param name="OrignFile">原始路径</param>/// <param name="NewFile">新路径</param>public static void FileMove(string OrignFile, string NewFile){File.Move(OrignFile, NewFile);}#endregion#region 在当前目录下创建目录/***************************************** 函数名称:FolderCreate* 功能说明:在当前目录下创建目录* 参数:OrignFolder:当前目录,NewFloder:新目录* 调用示列:* string OrignFolder = Server.MapPath("test/");* string NewFloder = "new";* EC.FileObj.FolderCreate(OrignFolder, NewFloder);*****************************************//// <summary>/// 在当前目录下创建目录/// </summary>/// <param name="OrignFolder">当前目录</param>/// <param name="NewFloder">新目录</param>public static void FolderCreate(string OrignFolder, string NewFloder) {Directory.SetCurrentDirectory(OrignFolder);Directory.CreateDirectory(NewFloder);}/// <summary>/// 创建文件夹/// </summary>/// <param name="Path"></param>public static void FolderCreate(string Path){// 判断目标目录是否存在如果不存在则新建之if (!Directory.Exists(Path))Directory.CreateDirectory(Path);}#endregion#region 创建目录public static void FileCreate(string Path){FileInfo CreateFile = new FileInfo(Path); //创建文件if (!CreateFile.Exists){FileStream FS = CreateFile.Create();FS.Close();}}#endregion#region 递归删除文件夹目录及文件/***************************************** 函数名称:DeleteFolder* 功能说明:递归删除文件夹目录及文件* 参数:dir:文件夹路径* 调用示列:* string dir = Server.MapPath("test/");* EC.FileObj.DeleteFolder(dir);*****************************************//// <summary>/// 递归删除文件夹目录及文件/// </summary>/// <param name="dir"></param>/// <returns></returns>public static void DeleteFolder(string dir){if (Directory.Exists(dir)) //如果存在这个文件夹删除之{foreach (string d in Directory.GetFileSystemEntries(dir)) {if (File.Exists(d))File.Delete(d); //直接删除其中的文件elseDeleteFolder(d); //递归删除子文件夹}Directory.Delete(dir, true); //删除已空文件夹}}#endregion#region 将指定文件夹下面的所有内容copy到目标文件夹下面果目标文件夹为只读属性就会报错。
网站:
1.服务器的作用:
服务器是网络环境中的高性能计算机,它侦听网络上的其他计算机(客户端)提交的服务请求,并提供相应的服务。
为此,服务器必须具有承担服务并且保障服务的能力。
它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面.
例如网络游戏, 100个人同时在线,就代表有100个"客户端", 这100个人游戏时所产生的数据变化,就传输到服务器上计算并存储.
2.学习mysql 和access
2.数据库的连接。
提取。
1)建立数据库并且将数据库里的内容提取(新建index1.asp)
在这里用到如下数据库连接代码如下:
<%
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("zcnj.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
set yzyrs=server.createObject("adodb.recordset")
sql="select * from zc"
yzyrs.open sql,conn,1,1'将数据库里和数据库里的表都打开。
为下面提出数据里的东西做准备。
%>
<body>
<%
的=yzyrs("zc")'将数据库里的东西提取出来。
%>
</body>
2)将数据写入数据库(即利用表单将客户端客户输入到浏览器里面的内容自动更新到数
据库)
新建add.asp
在body部分插入一个表单然后在表单里插入一个表格具体操作如下
记住这里的name为zcnj
将form的action定为“addman1”(意思是客户端在点击提交之后会转向addman1这个页面)
3)接着新建一个addman1的文件把里面的内容删除,写入如下内容
<%
'打开数据库
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("zcnj.mdb")‘数据库名为zcnj
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
'打开表
set rs=server.createobject("adodb.recordset")
rs.open "Select * from zc",conn,3,3 '表的名称为zc conn 3,3的意思是写入数据库
'set rs=server.createObject("adodb.recordset")
'sql="select * from zc"
'rs.open sql,conn,3,3
rs.AddNew ‘增加数据
rs("zc")=request.form("zcnj")
rs.Update
rs.close
set conn=nothing
set rs=nothing
%>
<script language=vbscript>
MsgBox "提示:最新信息动态成功登记。
"
location.href = "add.asp"
</script>
4)此时再次打开数据库发现多了一条。