版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章ASP访问数据库
网络技术与应用9.1.1建立数据库9.1数据库及SQL基础
1、数据库的概念所谓数据库就是按照一定数据模型组织、存储在一起的,能为多个用户共享的、与应用程序相对独立、相互关联的数据集合。数据库是由相互联系的若干数据表(Table)组成,同一个数据库中的表之间可建立联系,通过这种联系可以保证数据操作的一致性和完整性。数据表的概念学号姓名性别民族年龄入学日期联系电话20060101郭靖男汉族202004-12-5666666620060102黄蓉女汉族192005-2-8888888820060105欧阳克男藏族212006-3-99999999每一个数据表又包含一系列的记录(Record),每条记录包含若干个数据字段(Field)。数据表中的每一行称为一条记录,每一列称为一个字段,且每个字段有个字段名。学生档案(XSDA)
2、建立Access数据库Access数据库是一种关系型的桌面数据库系统,是Microsoft公司的办公室自动化套件Office中的一个应用程序,可以完成小型数据库的管理工作。从“开始”菜单启动Access应用程序,出现如图8-1所示的界面,然后选择“空Access数据库”选项,点击“确定”按钮,在出现的的框中输入数据库文件名XSGL.MDB(学生管理)。向Access数据库的数据表中添加记录9.1.2结构化查询语言SQLSelect是SQL语言的核心语句,它的功能是数据库的查询。使用语法:Select字段名列表From数据表名[Where条件][OrderBy字段][GoupBy字段]1.使用SELECT语句查询数据字段名列表:就是要查询的列。如果是多列,字段名之间用逗号隔开;如果要查询所有列,字段名也可以用*代替。另外,字段名列表中也可包含常量、函数或其他表达式;数据表名:就是要操作的数据表,如果有多个表,表名之间也要用逗号隔开;Where条件:给定查询时要满足的条件。如果有多个条件,条件之间要用逻辑词And或Or连接;Orderby字段:对查询结果按指定字段进行排序。升序用ASC,降序用DESC,如果省略,默认为升序。Groupby字段:对查询出的记录进行分组,然后分别统计结果。常用的计算函数有求和(Sum)、求平均(Average)、最大值(max)、最小值(Min)和统计记录个数(Count)等。如果对组需要进行筛选,后跟“Having条件短语”。SELECT语句说明注意:(1)字符串数据要用双引号括起来如:“20060101”,“张三三”,“男”,“信息专业”等。(2)日期型数据两边要加上“#”号如:#2006-6-5#表示2006年6月5日。Select语句应用举例:(1)选择全部记录、所有字段例:查询XSDA中所有学生的全部信息。Select*FromXSDA(2)选择指定字段例:查询XSDA中所有学生的指定信息。Select学号,姓名FromXSDA(3)产生派生字段数据例:在XSCJ表中查询所有学生的学号、姓名和总分。因为XSCJ表没有存储“总分”字段,但是我们可以通过现有字段把它计算出来:Select学号,姓名,英语+数学+计算机AS总分FromXSCJ(4)根据条件选择记录根据查询条件对记录进行筛选,Where后跟一个逻辑表达式,只有表达式的值为“True”的记录才被查询出来:例:查询数学成绩不及格的的的学号、姓名和数学成绩Select学号,姓名,数学FromXSCJwhere数学<60查询英语成绩在60分和80分之间的学生记录Select*FromXSCJwhere英语Between60and80再如:查询性别为“男”的学生信息Select学号,姓名FromXSDAwhere性别="男"还有:查询在2005年12月以前入学的学生Select学号,姓名,出生日期FromXSDAwhere入学日期<#1976-12-1#(5)按关键字查找有时候查询结果不太确定,可按某个关键字进行查询。例:查询所有姓“张”的学生信息Select*FromXSDAwhere姓名like"张%"其中,%代表任意字符。(6)查询结果排序例:对查询结果按学号降序排序Select*FromXSDAorderby学号DESC再如:对查询结果按计算机成绩升序排序Select*FromXSCJorderby计算机ASC实际上,如果你不注明排序方式,系统会默认为是升序。(7)统计查询例:查询数学成绩最高分Selectmax(数学)FromXSCJ再如:查询英语成绩最低分Selectmin(数学)FromXSCJ还有,统计性别为男的人数:Selectcount(*)FromXSDAwhere性别="男"(8)分组查询例:分别统计男、女生的平均年龄Selectaverage(年龄)FromXSDAGroupby性别系统执行命令时,首先把记录按关键字“性别”分组,然后对每一组分别求平均年龄。(9)多表查询例:查询每个同学的基本信息和学生成绩:
SelectXSDA.学号,XSDA.姓名,XSCJ.数学,
XSCJ.计算机FromXSDA,XSCJWhereXSDA.学号=XSCJ.学号2.使用Insert语句插入记录例:给XSDA数据表插入一条记录(20060103,杨过,男,汉族,#1988-8-8#,3322666)InsertintoXSDA(学号,姓名,性别,民族,入学日期,联系电话)Values("20060103","杨过","男","汉族",#2005-8-8#,3322666)3.使用Delete语句删除记录例:把姓名叫做“杨过”的记录删除掉DeletefromXSDAWhere姓名=“杨过”如果是把数据表中的记录全部删除掉,不加条件短语就行了。4.使用Update语句修改记录例:把“欧阳克”的电话号码改为6655888UpdateXSDASet电话号码=“6655888”Where姓名=“欧阳克”再如:给黄蓉同学的数学成绩加10分
UpdateXSCJSet数学=数学+10Where姓名="黄蓉"9.1.3设置数据源数据源,就是指开放式数据库链接(ODBC),它是一种数据库驱动程序,利用它可以访问来自多种数据库管理系统的数据。因为不同的数据库管理系统创建的数据库是不相同的,为了实现让不同的程序能访问相同的数据库,产生了开放数据库互联标准ODBC,所以有人称它为数据库中的数据和数据查询程序的一个接口或“解释器”。我们以Windows2000操作系统为例,为Access数据库XSGL.MDB设置数据源。设置数据源的步骤(1)在“控制面板”的“管理工具文件夹”中打开数据源ODBC;(2)单击“添加”按钮,将出现“创建数据源”对话框;(3)选择“MicrosoftAccessDriver(*.mdb)”,然后单击“完成”按钮,出现“ODBCMicrosoftAccess安装”对话框;(4)输入数据源名称,并单击“选择”按钮,在出现的对话框中找到自己需要的数据库;(5)单击“确定”按钮后,可以看到在“系统DSN”选项卡中已出现了数据源名称。再次单击“确定”按钮,完成数据源的安装。设置数据源的步骤9.2ADO基本结构
ADO是一个面向对象的应用程序的接口,ADO提供若干对象,每个对象都有相应的方法和属性,通过这些对象来实现各种功能。除了完成和实际数据库的连接之外,还可以对保存在Rcordset对象中的数据源进行移动、更新、添加、删除、查询、筛选和排序等操作。其实对初学者来讲,没必要去研究ADO的深层概念或技术,只要掌握ADO可以使开发者轻松使用数据库,并可以在客户端实时更新数据显示就可以了。
ADO有3个主要的对象,分别为Connection、Command和Recordset。其中,Connection对象用来建立与数据库的连接;Command对象用来对数据库执行查询、修改、删除等命令;Recordset对象用来得到从数据库中返回的记录集。9.3Connection对象
使用ADO进行网络数据库程序设计时,先使用Connection对象和数据源链接,通过Command对象传递指定的SQL命令,如对数据库的数据移动、更新、添加、删除、查询、筛选和排序。Recordset对象就像是一个二维数组,数组的行代表数据表的一个记录,一列表示一个字段。Connection对象是用来连接数据库的。使用Connection对象之前,要建立Connection对象。9.3.1建立Connection对象
建立Connection对象的一个实例方法很简单,可以通过Server对象的CreateObject方法完成。使用语法为:SetConnection对象=Server.CreatObject("ADODB.Connection")建立对象实例后,就可以使用Connection对象的Open方法来打开数据库并与之建立连接了。使用Open方法打开数据库Connection对象的方法主要用来初始化一个连接,使用Open方法可以打开一个数据库,使用语法为:Connection对象.Open"参数1=参数1的值;参数2=参数2的值;…"其中可以使用的参数及其意义为:·Dsn:ODBC数据源的名称;·User:数据库登录帐号;·Password:数据库登录密码;·Driver:数据库的类型或者说驱动程序;·Dbp:数据库的物理路径;·Provider:数据提供者。9.3.2连接数据库
我们先声明一个实例变量,再利用Server对象的CreatObject方法,建立一个数据库存取组件的Connection对象实例。然后就可以打开我们建立的数据源db了。例如:<%Dimdbxs
Setdbxs=Server.CreatObject("ADODB.Connection")Db1.Open"Dsn=db“%>1.利用数据源的方法连接数据库利用数据源的方法连接数据库有时候,这里的Dsn也可以省略,直接写数据源名称。例如:<%DimdbxsSetdbxs=Server.CreatObject("ADODB.Connection")Db1.Open"db"%>使用数据源的方法尽管简单,但是需要在服务器上设置数据源,如果希望把一个程序移植到另一个服务器上时,还需要在另一个服务器上设置数据源,就比较麻烦了。下面我们讲解一下不用数据源的数据库连接方法。<%Dimdbxs
Setdbxs=Server.CreateObject("ADODB.Connection")Db1.Open"Dbq=D:\network\xsgl.mdb;'描述数据库文件的物理路径Driver={MicrosoftAccessDriver(*.mdb)}"'指定数据库的类型,和前一项之间用分号隔开%>2.不利用数据源的方法连接数据库实际上,在编程中,我们也可以利用Server对象的Mappath方法把数据库的物理路径给隐蔽起来,因为该方法可以将虚拟路径转换为物理路径。如:<%Dimdbxs
Setdbxs=Server.CreateObject("ADODB.Connection")Db1.Open"Dbq="&Server.Mappath("xsgl.mdb")&";Driver={MicrosoftAccessDriver(*.mdb)}"%>
这样改写后带来的好处就是,如果我们将程序从一个服务器移植到另一个服务器上时,既不需要重新设置数据源,也不需要修改数据库文件的物理路径。不利用数据源的方法连接数据库8.3.3Connection对象的方法
Connection对象的方法有很多,其中最常用的是Open方法和Excute方法。(1)Open方法Open方法用来打开一个对象与数据源的连接。在ASP中,只有用Open方法打开和数据库的连接后,应用程序才可以继续进行其他的各种操作。(2)Close方法Close方法用来关闭一个Connection对象与数据源的连接。(3)Execute方法Execute方法用来执行数据库查询命令,它的用法有两种:SetRecordset对象=Connection对象.Execute(SQL命令字符串)或Connection对象.Execute(SQL命令字符串)
说明:第一种方法将返回一个Recordset对象,即记录集,也可以看成是一个虚拟的数据表。第二种方法不返回记录集。当对数据库查询记录时需要用到记录集,一般用第一种方法;而执行添加、删除和更新等操作时,没必要返回记录集,一般采用第二种方法。详细情况请看例1、例2、例3、例4。<%OptionExplicit%><html><head> <title>利用Select语句查询记录示例</title></head><body> <h2align="center">学生基本情况浏览</h2> <% '以下连接数据库,建立一个Connection对象实例dbxs Dimdbxs
Setdbxs=Server.CreateObject("ADODB.Connection")
dbxs.Open"db"'利用数据源连接数据库
'以下建立记录集
DimstrSql,rs
strSql="Select*FromxsdaOrderBy学号"'按升序排列显示所有记录
Setrs=dbxs.Execute(strSql) %> <tableborder="1"align="center"><tr> <tdalign="center">学号</td> <tdalign="center">姓名</td> <tdalign="center">性别</td> <tdalign="center">民族</td> <tdalign="center">入学日期</td> <tdalign="center">年龄</td> <tdalign="center">特长</td> <tdalign="center">联系电话</td></tr><% '以下显示数据库记录
DoWhileNotrs.Eof'只要不是结尾就执行循环%> <tr> <tdalign="center"><%=rs("学号")%></td> <tdalign="center"><%=rs("姓名")%></td> <tdalign="center"><%=rs("性别")%></td> <tdalign="center"><%=rs("民族")%></td> <tdalign="center"><%=rs("入学日期")%></td> <tdalign="center"><%=rs("年龄")%></td> <tdalign="center"><%=rs("特长")%></td> <tdalign="center"><%=rs("联系电话")%></td> </tr> <%rs.MoveNext'将记录指针移动到下一条记录
Loop%></table></body></html>例8-1程序运行结果如下图所示(4)BeginTrans方法BeginTrans方法用于开始一个事务处理。所谓事务实际上是用户人为定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的逻辑工作单位。例如:在银行应用中,要求将用户A帐户中的1万元钱转移到用户B的帐户上。这个操作要求从用户A的帐户中减掉1万元,在用户B的帐户中增加1万元。银行的业务规则要求增加1万元和减少1万元这两个操作要么全做,要么一个也不做。Connection对象的方法(5)Committrans方法只有执行Committrans方法后,才会提交事务处理,结束一个事务处理。将所欲更新的数据库数据立即更新。(6)RollbackTrans方法RollbackTrans方法用于取消事务处理,并放弃保存在缓冲区中的数据库更新数据。〖例9.5〗事务应用举例。从用户张三帐号上取1000元钱,转到用户李四的帐号中。<% OnErrorResumeNext'如果发生错误,跳过执行下一句
Dimdb,Conn
Conn="Dbq="&Server.Mappath("Money_Users.mdb")&";Driver={MicrosoftAccessDriver(*.mdb)}" Setdb=Server.CreateObject("ADODB.Connection") db.OpenConn
db.BeginTrans'开始事务处理
'修改张三的余额,从其帐户中取出1000元钱
strSql="UpdateMoneyset余额=余额-1000Wherename='张三'"
db.Execute(strSql) '修改李四的余额,往其帐户中增加1000元钱
strSql="UpdateMoneyset余额=余额+1000Wherename='李四'" db.Execute(strSql)Ifdb.Errors.Count=0Then'如果无错误,就执行提交事务处理结果
Db.CommitTrans
Response.Write"成功执行" Else
Db.RollbackTrans'如果有错误,则取消事务处理结果
Response.Write"有错误发生,取消处理结果" EndIf %>9.3.5Errors集合
在Connection对象中,有一个Errors集合,集合中包含了Error子对象。
ADO对象的操作也会产生一个或多个错误。每个错误出现时,一个或多个Error对象将被放到Connection对象的Errors集合中。当另一个ADO操作产生错误时,Errors集合将被清空,并在其中放入新的Error对象集。所以要及时地访问这个错误的集合,以便需要的时候对错误进行更正。
Errors集合有一个Count属性,该属性返回错误集合中Error对象的个数。如果想知道有没有错误发生的时候,我们可以判断Count的值是否等于0就可以了:Count等于0,表示没有错误发生;Count大于0,则表示有错误发生。〖例9.6〗error对象应用举例
<%Dimdb OnErrorResumeNext'一定要有此语句,发生错误后,继续执行下一句
Setdb=Server.CreateObject("ADODB.Connection") '建立Connection对象
db.Open"Dsn=dberror"'故意给一个错误的数据源
'用一个循环将所有错误信息输出
DimI,err ForI=0Todb.Errors.Count-1'循环输出所有的错误对象
Seterr=db.Errors.Item(I)'建立Error对象err
Response.Write"错误编号:"&err.Number&"<br>"
Response.Write"错误描述:"&err.Description&"<br>"
Response.Write"错误原因:"&err.Source&"<br>"
Response.Write"提示文字:"&err.HelpContext&"<br>"
Response.Write"帮助文件:"&err.HelpFile&"<br>"
Response.Write"原始错误:"&err.NativeError&"<br>" Next %>程序程序结果如下图所示:9.4Recordset对象
Recordset对象又称记录集对象,当用Connection对象或Command对象执行查询命令后,就会得到一个记录集对象。该对象包含了满足条件的所有记录,就像一个二维表一样,可以利用ASP语句操作显示其中的记录数据。9.4.1创建Recordset对象
(1)利用Connection对象的Excute方法建立Recordset对象<%Dimdbxs,rsSetdbxs=Server.CreateObject("ADODB.Connection")dbxs.Open"Dsn=db"Setrs=dbxs.Excute("Select*fromxsda")%>(2)用标准方法建立Recordset对象语法:SetRecordset对象=Server.CreateObject("ADODB.Recordset")然后利用Recordset对象的Open方法打开一个数据库:Recordset对象.Open[Source][,ActiveConnection][,CursorType][,LockType][,Options]说明:lSoruce:Command对象名或SQL语句或数据表名;l
ActiveConnection:Connection对象名或数据库连接字符串;l
CursorType:Recordset对象记录集中的指针类型;l
LockType:Recordset对象的使用类型;lOptions:Source类型。9.4.2Recordset对象的常用属性1.方式属性Recordset对象的方式属性有Source、ActiveConnection等,前面已有介绍,这里不做重复说明。2.行为属性(1)CursorType属性它返回当前记录集使用的指针类型,也可以由我们给当前记录集设置一个指针类型。该属性的取值如下:lAdOpenForwardOnly或0:指针只能向前移动,其他人做的修改不可见。lAdOpenKeyset或1:键盘指针,指针可向前、向后移动,其它人对数据的修改和删除是可见的,但添加的数据是不可见的。
AdOpenDynamic或2:动态指针类型,其它人的修改是可见的,可以向前和向后移动指针。lAdOpenStatic或3:静态指针类型,其它人的修改是不可见的,但可以向前和向后移动指针。2.行为属性(2)Filter属性该属性用来过滤当前记录集中的记录,它的值可以取常量,也可以取字符串值。当它取字符串值时,相当于SQL的Select语句中的Where后面的条件,可以是任何表达式。当它取常量时是下面的值之一:l
AdFilterNone或0:当前的任何过滤条件都被取消,显示所有数据。l
AdFilterPendingrecords或1:只返回没有经过修改的数据。l
AdFilterAffectrecords或2:只返回最近修改过的数据。AdFilterFetchedrecords或3:只返回暂存于客户端缓存中的数据。这里我们介绍一个Status属性,该属性是用来检测当前的记录状态的,这个属性是只读的。它的取值如下:lAdRecOk:表示记录修改成功。lAdRecNew:
表示这是一个新记录。lAdRecModified:记录被修改。l
AdRecDeleted:
记录被删除。l
AdRecUnModified:记录未被修改。lAdRecPendingChanges:因为有挂起的插入操作,记录未被称为保存。lAdRecCantRelease:
因为加锁,所以记录不能更新换代。l
AdRecPermissionDenied:由于用户权限不允许修改记录。l
AdRecSchemaviolation:
因结构不符,不能更新记录。该属性可以在实施一次批量更新后,查询Recordset对象的状态。
3.数据库维护属性(1)RecordCount该属性返回记录集中的记录总数。如输出数据表中记录个数:<%Response.writers.RecordCount%>注意:使用该属性需要把指针类型CursorType属性设置为1或3,否则会出错。(2)Bof该属性返回记录指针是否在记录集的开头,即第一条记录之前。如是则返回true,否则返回False。(3)Eof该属性返回记录指针是否在记录集的结尾,即最后一条记录之后。如是则返回true,否则返回False。注意:如果数据表是空的,此时记录指针同时指向Bof和Eof,即它们的值同时是True。4.记录指针移动属性在显示数据库记录时,我们经常用到这两个属性,如:<%Dowhilenotrs.Eof……rs.MoveNextLoop%>记录指针移动属性这一组属性主要用来完成数据分页显示的功能。其中PageSize用于设置每一页的记录数;PageCount表示分页显示时数据页的总数;AbsolutePage用于设置当前指针位于哪一页;AbsolutePosition用于设置当前指针所在的记录行的绝对值。具体情况请看教材例题8.7。(4)PageSize、PageCount、AbsolutePage和AbsolutePosition属性AddNew:向数据库中添加一个新记录。使用语法:rs.AddNew
([Fields,Values])Delete:该方法用于删除当前记录。Update:该方法用于更新数据库数据。执行完AddNew或Delete方法后,必须执行Update方法,才能真正地更新了数据库。实际上,也可以直接用Update方法更新数据:<%……
rs.UpdateFields,Values……%>直接更新时,Update的参数和AddNew方法是一样的。CancelUpdate:该方法的作用是取消刚才的更新操作。即取消在调用Update方法前所做的一切修改。这两个方法一个是更新数据,一个是取消更新。前者是对所做的修改保存,而后者是从缓冲区中除掉数据,取消更新。9.5Command对象
学习了Connection对象和Recordset对象之后,我们已经掌握了对数据库进行查询和更新操作的编程技术。但是,这种访问方式对相对简单的SQL命令是可以满足需要的,对一些复杂的数据库访问要求,就显得力不从心了。Command对象在数据查询方面具有强大的功能,它不仅能够将一般的SQL命令送往Web数据库服务器,还能够传送带有参数的SQL命令,可以开发出更具效率的数据库应用网页。9.5.1建立Command对象
Command对象是介于Connection对象和Recordset对象之间的一个对象,它主要是通过传递SQL指令,对数据库提出操作请求,把得到的结果返回给Recordset对象。Command对象依赖Connection对象,因为Command对象必须经过一个已经建立的Connection对象才能发出指令。建立Command对象很容易,语法如下:SetCommand对象=Server.CreateObject("ADODB.Command")然后用ActiveConnection属性指定要用的Connection对象名称,语法如下:Command对象.ActiveConnection=Connection对象例如:<%Dimdbxs,cmdSetdbxs=Server.CreateObject("ADODB.Connection")dbxs.Open"db"Setcmd=Server.CreateObject("ADODB.Command")cmd.ActiveConnection=dbxs%>也可以直接建立Command对象,不用事先建立Connection对象,而是隐含建立:<%DimcmdSetcmd=Server.CreateObject("ADODB.Command")cmd.ActiveConnection="db"%>建立Command对象
Command对象有以下常用属性:(1)ActiveConnectionActiveConnection属性用于指定Connection连接对象,表示该Command对象通过哪个Connection对象对数据库操作。我们在前面已经用过了,不再缀述。(2)CommandTextCommandText属性表示一个查询字符串。它可以是一个SQL命令、数据库表或者子程序名,其类型由CommandType属性决定。9.5.2
Command对象的属性(3)CommandType该属性用来设置Command对象查询信息的类型。类型值有:lAdCmdUnknown或-1:默认值,CommandText属性的命令类型未知,需要由程序来决定。lAdCmdText或1:CommandText命令的是SQL语句。lAdCmdTable或2:CommandText查询字符串是数据表名。lAdCmdStoredProc或4:CommandText查询字符串是查询名或存储过程。(4)CommandTimeout该属性指定在执行数据查询的最长执行时间。默认值为30秒,如果设置为0,则表示永久执行,直至执行成功。Command对象的属性
Execute方法用来执行在CommandText属性中定义好的查询、SQL语句或存储过程,包括查询记录、添加、删除和更新等各种操作。使用语法:(1)需要返回记录集:SetRecordset对象=Command对象.Execute([Count][,Parameters][,Options])(2)不需要返回记录集:Command对象.Execute([Count][,Parameters][,Options])说明:l
Count,可选项,返回该操作影响的记录的数量。l
Parameters,可选项,包含被SQL语句传递的参数值。lOptions可选项,指定Command对象的CommandType属性。9.5.3Command对象的方法1.
Execute方法例如:<%……Setcmd=Server.CreateObject("ADODB.Command")cmd.ActiveConnection=dbxscmd.CommandText="Select*fromxsda"cmd.CommandType=1'指定命令类型为SQL语句Setrs=cmd.Excute'没有加参数……%>再如:<%cmd.CommandText="Delete*fromxsda"Setrs=cmd.Excute
(count,,1)'加上参数Response.Write"共删除"&count&"条记录"%>Execute方法Command对象有两个集合:Parameters和Properties。Parameters集合也称为参数集合,是由若干个Parameter对象组成。CreateParameter方法用指定的属性创建一个新的Parameter对象(参数对象)。该对象主要是在进行参数查询时使用。Setparameter=command.CreateParameter(Name,Type,Direction,Size,Value)返回值:返回一个Parameter对象。说明:l
Name:可选,一个代表Parameter对象的名字的字符串。l
Type:可选,确定Parameter对象的数据类型。lDirection:可选,确定Parameter对象的类型。lSize:可选,确定参数值的最大长度,单位为字符或字节。lValue|varValue:可选,一个Variant值,指示Parameter对象的值。CreateParameter方法的具体用法请参考有关资料,这里不再展开介绍。2.CreateParameter方法9.6访问SQLServer数据库访问SQLServer数据库其实和访问Access数据库的方法是一样的,只是在连接数据库时有些许差别。假如我们已经建立了SQL数据库RSGL(人事管理),访问此SQL数据库需要的帐号和密码分别为Admin、test123,并且
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度高端家居产品代理公司战略合作框架协议3篇
- 2024年度导游人员年度考核聘用合同3篇
- 2024年度三方租赁合同模板:含租赁房屋租赁合同解除条款2篇
- 2024年度跨境电商平台承包经营合同3篇
- 2024年度展会绿色环保与可持续发展协议3篇
- 2024年度企业安全生产标准化建设与评估协议3篇
- 2024版叉车租赁及叉车使用操作手册提供合同3篇
- 冀教版四年级上册数学第七单元 垂线和平行线 测试卷及答案【历年真题】
- 2024年个人货车租赁合同样本2篇
- 2024年度软件开发合同标的为000万元3篇
- 灭火器维修与保养手册
- 电梯日管控、周排查、月调度内容表格
- 降低检查报告错误率品管圈护理课件
- 环卫公司行业风险分析
- 信托行业保密知识培训
- SN国际货运代理公司海运业务流程优化研究
- 预防小火亡人主题班会
- 海洋平台深水管道高效保温技术
- 《新疆大学版学术期刊目录》(人文社科)
- 充电桩维保投标方案
- 《如何写文献综述》课件
评论
0/150
提交评论