代码解释
- 格式:doc
- 大小:93.50 KB
- 文档页数:15
4.1网页与数据库连接文件名称:conn.asp在使用asp语言建立网站时,常常需要用数据库记录一些信息,此时就需要用到asp连接数据库的代码连接数据库后便于进行数据添加删除等操作。
由于系统在每个页面要使用数据的时候都要建立与数据库的连接,则有很多代码是重复的,在这里首先设置一个连接数据库的文件,这样可以大大节省网页代码的重复编辑,在其他页面中用包含文件(<!-- #include file="conn.asp" -->)即可.Access数据库相对路径:data/cangkuxitong.mdbAccess数据库连接代码实现:set conn=server.createobject("adodb.connection")【默认连接数据库必须的要求】mypath=server.mappath("data/cangkuxitong.mdb")【数据库路径】conn.open "driver={microsoft access driver (*.mdb)};dbq="&mypath【连接程序】4.2管理登陆用户将登录用户名和登录口令输入后,通过post传输到验证页面,为使口令更加安全,口令通过md5加密后与数据库中的用户名和密码匹配,用户名和口令完全匹配后才可以通过验证,进入系统管理,并用session记录登录信息。
否则,自动跳转到登录窗口。
加密文件:md5.asp文件名称:checklogin.aspSql语句:select * from login where username='"&nowusername&"' and password='"&md5(nowpassword)&"'"【查询login表,条件是提交的用户名信息和加密后的密码】用户登录检测代码实现:<!-- #include file="conn.asp" -->【包含连接数据库文件】<!-- #include file="inc/md5.asp" -->【包含加密数据程序】<%nowusername=request.form("username")【接收用户名信息】nowpassword=request.form("password")【接收密码信息】sql="select * from login where username='"&nowusername&"' and password='"&md5(nowpassword)&"'"【查询login表,条件是提交的用户名信息和加密后的密码】set rs=conn.execute(sql)【执行查询】if rs.eof then【如果查询数据为空】%><script language=javascript>alert('用户名称或口令错误!')window.history.go(-1)</script>【提示错误,并返还上个页面】<%response.end【结束查询】end if【结束if】session("username")=nowusername【成功后赋值session,用此判断用户是否登录,默认时间为60秒】response.redirect "main.asp"【跳转到main.asp】%>4.3 模块功能结构实现4.3.1 入库管理文件名称:produit_add.asp分析实现:管理员将表单提交到本页,本页会根据数据库的信息来添加到产品总表格中。
包括:新产品入库:入库的产品需要包含类别(大类、小类)、产品名称、产品货号、加入仓库分类、入库数量、产品单位、价格、最低存货报警数量、经办人、产品类型、提成等规格。
已有产品入库:在原有的产品库里面,可以直接选择入库的仓库名称、产品名称、数量、经办人等信息代码实现:if request("hid1")="ok" then 代表已有产品入库(nowhuohao=request("huohao")nowshulian=request("shulian")nowku=request("ku")nowlogin=request("login") )接受表单信息set rs_produit=conn.execute("select * from produit where huohao='"&nowhuohao&"'") 根据得到的选择产品得到数据包【set rs=server.createobject("ADODB.RecordSet")sql="select * from produit where huohao='"&nowhuohao&"' and id_ku="&nowku rs.open sql,conn,1,3】修改数据库中产品名是nowhuohao和库名if rs.eof then【如果库和产品没有】rs.addnew【开始添加】rs("id_bigclass")=rs_produit("id_bigclass")【将原有数据库的内容替换成提交的表单内容】rs("id_smallclass")=rs_produit("id_smallclass")rs("title")=rs_produit("title")rs("huohao")=rs_produit("huohao")rs("id_ku")=nowkurs("shulian")=nowshulianrs("danwei")=rs_produit("danwei")rs("price")=rs_produit("price")rs("guige")=rs_produit("guige")rs("baojin")=rs_produit("baojin")rs("class")=rs_produit("class")rs("duihuan")=rs_produit("duihuan")rs("tichen_type")=rs_produit("tichen_type")rs("tichen")=rs_produit("tichen")else【否则,有该产品和库】rs("shulian")=rs("shulian")+nowshulian 【将原数据库的产品数量加上最近添加的数量】end ifrs.update【开始执行添加,并完成】rs.close【关闭数据库添加程序】sql="select bigclass from bigclass where id="&rs_produit("id_bigclass")【查询数据库中大类,条件是:类别的id】set rs_bigclass=conn.execute(sql)【执行查询语句】sql="select smallclass from smallclass where id="&rs_produit("id_smallclass")【查询数据库中小类,条件是:类别的id】set rs_smallclass=conn.execute(sql) 【执行查询语句】sql="select ku from ku where id="&nowku【查询数据库中库名,条件是:类别的id】set rs_ku=conn.execute(sql) 【执行查询语句】sql="insert into buy(id_produit,bigclass,smallclass,title,huohao,ku,shulian,guige,login,type ,selldate)values("&rs_produit("id")&",'"&rs_bigclass(0)&"','"&rs_smallclass(0)&"','"& rs_produit("title")&"','"&nowhuohao&"','"&rs_ku(0)&"',"&nowshulian&",'"&rs_ produit("guige")&"','"&nowlogin&"',0,#"&date()&"#)"【插入到入库表中】conn.execute(sql)【执行sql语句】%><script language="javascript">alert("产品入库成功!")</script>【提示成功】至此,产品已经入库成功,如果存在一些其他问题,如库存账号已存在,则弹出该提示。