第一篇:Dreamweaver 8.0制作简易留言板图文教程
用ASP和Dreamweaver 8.0制作简易留言板
目录
一、ASP原理..................................................................................................................................2
二、网页制作步骤...........................................................................................................................3
1、建立数据库.........................................................................................................................3
(1)、利用ACCESS新建空数据库db_message.mdb.....................................................3(2)、建立数据表t_message.............................................................................................3(3)、建立所需字段..........................................................................................................3
2、建立留言页面.....................................................................................................................4
(1)、打开Dreamweaver 8.0 新建 ASP VBScript,建立留言页面message.Asp。....4(2)、建立数据库连接conn.............................................................................................4(3)、利用插入记录表单向导创建页面..........................................................................4
3、建立留言板首页.................................................................................................................6
(1)、用Dreamweaver新建ASP VBScript,创建留言板首页index.asp。...............6(2)、建立一个记录集message........................................................................................6(3)、插入一个4行4列的表格......................................................................................7(4)、绑定记录集到表格中..............................................................................................8(5)、添加重复区域........................................................................................................10
三、网页制作结果.........................................................................................................................11
四、总结.........................................................................................................................................12
五、致谢.........................................................................................................................................12
六、参考文献.................................................................................................................................13
摘要:随着因特网的迅猛发展,网络已深入到世界的各个角落,作为因特网的主要组成部分的网站,其数量和质量都在快速发展。网站与用户的交互主要使用动态网页来实现,为了简化和方便动态网页的开发,Web领域的主要开发商相继推出了多种Web开发技术,ASP(Active Server Pages)就是其中的典型代表。利用ASP和Dreamweaver 8.0快速创建充满动感的交互网页,而无需或只需要少量的手写代码,同时还能非常方便地编辑和管理站点,这是动态网页初学者进行网站开发的最好方式。用ASP、Dreamweaver 8.0以及Access作为后台数据库可以简单快捷的设计一个留言板,达到留言板的基本功能。
关键字:ASP、Dreamweaver、留言板、交互网页、Access
一、ASP原理
ASP是一个编程环境,在其中,可以混合使用HTML、脚本语言以及组件来创建服务器端功能强大的Internet应用程序。如果你以前创建过一个站点,其中混合了HTML、脚本语言以及组件,你就可以在其中加入ASP程序代码。组件可以被脚本程序调用,也可以由其他的组件调用。ASP网页需要相应的Web服务器的支持,才能正常运行,其WEB服务器主要是PWS和IIS。安装IIS后,设置相应配置,便可使用ASP。
网页文件均是存放在Web服务器中的,当在客户端浏览器的地址栏键入某个网址并按回车时,便向服务器触发了一个HTTP请求,服务器将根据所请求网页的扩展名,来决定响应的方式。ASP网页是运行于服务器端的,在客户端所查看到的网页源代码,是ASP动态生成的页面源代码,并非ASP网页本身的代码,因此,ASP网页具有较高的保密性,另外,由于ASP输出的是标准格式的HTML页面,故不存在浏览器不支持的问题。HTML运行于客户端浏览器,由浏览器解释执行,从而显示出最终的页面内容。ASP能根据代码执行的结果,动态形成页面内容,故ASP页面又称为动态网页。
当在Web站点中融入ASP功能后,通常将发生以下结果:
1、用户调出站点内容,默认页面的扩展名是.asp。
2、浏览器从服务器上请求ASP文件。
3、服务器端脚本开始运行ASP。
4、ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容。
5、页面信息发送到浏览器。
二、网页制作步骤
1、建立数据库
(1)、利用ACCESS新建空数据库db_message.mdb(2)、建立数据表t_message(3)、建立所需字段
留言人:t_name 留言内容:t_message 留言时间:t_time
2、建立留言页面
(1)、打开Dreamweaver 8.0 新建 ASP VBScript,建立留言页面message.Asp。(2)、建立数据库连接conn,用以下程序:
“Provider=Microsoft.Jet.oLEDB.4.0;Data Source=E:webdb_message.mdb”
(3)、利用插入记录表单向导创建页面,各配置如图
列t_time的标签改为留言时间,显示为隐藏域,提交为日期,默认值写 <%= Now()%> 设置完记录表单向导后,会自动生成表单
打开浏览器,输入http://localhost/message.asp 出现留言页面,输入留言内容
由于留言板主页并未制作,所以不会出现连接,但是Access数据库中有留言内容
3、建立留言板首页
(1)、用Dreamweaver新建ASP VBScript,创建留言板首页index.asp。(2)、建立一个记录集message
(3)、插入一个4行4列的表格
(4)、绑定记录集到表格中
在浏览器地址输入http://localhost/index.asp就会出现留言板主页,并且显示以前留言
重新在浏览器地址输入http://localhost/message.asp
提交新留言
留言板主页只显示当前最新留言,以前留言并不显示,要改进就要添加重复区域
9(5)、添加重复区域
需要修改代码
在浏览器输入地址http://localhost/index.asp显示结果有全部留言
三、网页制作结果
四、总结
这次实训是做一个简易的留言板,对然简单,但能实现基本功能。利用ASP、Dreamweaver 8.0、Access制作留言板,减少了写繁多代码的麻烦,便可制作出最基本、简便的留言板。在制作过程中,首先了解了ASP的运行与原理,其次,再利用Dreamweaver 8.0制作网页的过程中,对该软件有了初步的认识与了解,并会运用其中一些功能,利用Access制作简单的数据库,简便快捷。
在使用软件的过程中,由陌生到逐步了解、熟悉,在配置各种设置的过程中了解使用原理,一步一步做出所需要的留言板,在过程中学会知识,在结果中收获喜悦。通过本次实训,让我对学了的知识进行了巩固并且学到了许多新的知识,知道如何将书本上的知识转化为实际操作并且得到所要的结果,五、致谢
感谢老师的指导,为我们解决了许多疑难困惑。
六、参考文献
[1] 吴鹏,李国娟,贾艳萍.Dreamweaver网页设计与制作案例教程.北京大学出版社,2010.[2] 张玉孔.ASP动态网页开发案例教程.北京航空航天大学出版社,2009.[3] 石志国,李颖.ASP程序设计.清华大学出版社,2005.[4] 邹婷.Dreamweaver 8 标准教程.中国青年出版社,2006.
第二篇:网站留言板留言板简易教程
用Dreamweaver MX设计超简留言本
初学者在学ASP的时候往往是无从学起,学理论的时候又太抽象不好懂,实践的时候又找不到合适的例子来分析练习,有时候找到一个源程序学习的时候,功能太繁杂,涉及到的ASP模块太多,也附带了不少的函数,这样使初学者一头雾水,知难而退,实际上ASP是比较容易掌握的,今天就是为了这个目的,剥茧抽丝做了一个非常简单的留言板,只有留言,删除和回复的功能,没有管理权限功能(站长登录,修改密码等)、判断功能(表单验证等)及分页功能,简洁干炼,主要是为了初学者掌握最重要的知识,就是如何抓取数据库以及如何查看、删除、修改记录的操作,我们先从这个超级简单的留言板开刀吧,此关只要能过,恭喜您了,将来即可步入ASP应用的行列了!:)本教程
完成后会提供下载!
首先我们先做准备工作,先做一下策划,看看我们可能要做哪些页面,所谓说好的开始就是成功的一半,所以大家不要急着做,听我慢慢讲来。为了让大家都能制作出自己的留言板,尽量实现一个网页一个功能模块,我们就做以下六个网页:
一、index.asp----首页即显示留言页
二、conn.asp----公共网页,每个网页都要包含它,是连接打开数据库的操作。
三、write.asp和save.asp----分别是发表留言的表单网页和保存留言页。
四、del.asp----删除留言页
五、reply.asp----回复当前留言页
做好的留言板效果图如下:
< P>
好了,说到这里我们可以动工了,首先做一个最重要的工作,就是建立起一个数据
库,将来存放网友的留言所用。
1、数据库名:db1.mdb
2、数据库表:只有一个表:book
3、数据表book里增设以下字段,见图1
说明:·任一字段的数据类型中的“常归”项中的“允许空字符串”最好填“是”
·日期/时间的“常归”项中默认值为Now();站长回复里的“常归”项中的默认值为“暂没有回复”,注意此处要加双引号,是半角而不是全角。
数据库建好后开始做公共网页,用来打开数据库,打开Dreamweaver MX,按如下方
法新建动态ASP网页:
并保存为CONN.ASP,在编辑区里切换到显示代码视图里,注意把第一行自动生成的代码删掉。
这次主要是写连接数据库和参数设置的ASP代码,不用输出什么HTML标签,所以把代码全部删掉,用DREAWMEAVER插入栏自带的ASP对象写入以下代码,ASP栏里没有的代码只能自己手写输入了。
注意要把所有要编译的ASP代码放在<% %>之间,这样才能正常运行,否则会出错!这是基本常识哦。让我解释以上代码的意思吧:
代码第一行: 用来建立connection对象,connection对象扮演着十分重要的前期连接工作,连接成功数据库才会有以后的数据操作功能。
代码第二行:设置数据库连接参数。包括有数据库驱动程序和数据库文件名。
代码第三行:用conn连接对象打开数据库。
这些是通用连接数据库的方法,任何需要打开数据库的动态网页都可以照搬以上代码就行了,只把数据库的名字换成你的数据库名字就行了,注意路径要正确。所以可以把这些代码用Dreawmeaver里的代码片断复制下来,以后直接插入就可以用了,比较方
便,也不用记忆,这是一个小技艺吧!
好了,今天就先说到这里。
有什么错误和更好的建议也希望你能到腾风在线论谈提出来。
现在我们继续前面的内容。
新建动态网页index.asp:先在设计视图里排版好一个留言板的界面,设计好的页
面效果图如下:
下面表格规划和显示都很清楚,一目了然,什么排版的我就不说了吧:),这可是基本功啊,如果不行的话可先学好Dreamweaver,再来学ASP哦!稳打稳进,至理名言^_^.如果想偷懒的话,可以直接下载源代码,学习研究ASP代码也可以啊,我不反对哦,至少我也是这么懒的,理解万岁!:)
排好版后再进入代码视图里,在不同的位置插入以下ASP代码:如下图:
在网页代码的最上面第一行,点击用红线圈起来的标志可以插入第一行的代码,并可以浏览到具体文件上,比较方便,注意选择file文件类型的,不是virtual虚拟类型的。这样就插入了conn.asp数据库连接代码页,此代码被包含在当前网页位置中进行正常编译,不用重复写数据库连接代码,它的好处很大哦,使页面结构化,容易修改和维护,如果数据库连接错误,或数据库文件变动,只需更改conn.asp即可,不必要修改每一页的代码。要善于用这个方法啊,会使你的程序简单化,清晰化,这是常用的编程方法。
然后再输入以上第二行到第六行的划红线的代码块,此代码块的意义让我一一讲
来:
第三行代码:既然网页和数据库用connection建立连接打开关系了,之后最重要的工作就是读取数据了。建立rs对象变量为recordset对象,这样以后可以用rs对象
变量来存取数据库操作。
第四行代码:把从数据表book里查询的结果放到sql变量上。它的意思是把book里所有的数据都取出来,并按id从大到小排序。desc表示从大到小排序,如果不加的话,最新的留言可是在最后面哦,不方便了。
第五行代码:表示用rs对象变量open方法来打开数据表book,取出结果按sql的查询方法。
以上是通用的读取记录的方法,到其它地方都可以举一反三,要熟悉使用!
接着我们要做无留言记录的判断显示代码出来,我们要定位到“暂无留言”这个表格标签代码的开头,加上第29行如下划红线的代码即可,此代码表示判断语句:如果RS记录指针的EOF结尾和BOF开头都为空,就返回真,执行以下标签,即输入暂无留言这个表格,而不输出下面的其它标签了。再定位到“暂无留言”表格标签的结尾,输入以下37、38行划红线的代码完成判断条件,Response.end表示输出结束,不再输出以
下的代码。
其次再做如果记录不为空的情况下输入留言的表格出来,分别定位在输出留言表格标签的前面和后面,插入ASP代码块如下图输入:
此代码块的意思为:将RS记录指针指向第一个记录,然后开始判断移动记录时,记录结尾是否为空,如果不为空接着移动指针,把所有数据都读取出来。直到结尾为空
时,退出循环。
然后我们做最重要的也是最频繁使用的工作了,就是把数据表里各字段的记录分别读取出来放在表格的不两路位置上,例姓名,QQ,邮箱及留言等。先转换到设计视图和
代码视图的环境下,如下图:
我们发现上图多了很多
标记,这就是刚才在代码视图中输入的ASP代码,方便我们在设计视图中进行修改,输出预览是不影响排版的。我们把光标定位在姓名旁边的表格里,点击插入栏ASP里的,自动插入代码区里指定位置,比较方便,不容易搞错,如下图:
然后选中姓名旁边的标记,点属性栏里的Edit编辑按钮,输入rs(“name”)即可。<%= %>表示输出变量值,相当于response.write的简化版。rs是上次已建过的recordset对象,可以直接读取字段里的内容,name是数据表里book里的姓名字段。
同理按以上方法再插入ASP代码留言内容、发表者、发表时间及回复内容在不同位
置,分别是:
留言内容:<%=server.htmlencode(rs(“content”))%>
发表者:<%= rs(“name”)%>
发表时间:<%= rs(“time”)%>
站长回复:<%= rs(“repcontent”)%>
大家可能发现了,留言内容插入的代码和别的稍微不一样,多了server.htmlencode这个对象,这是为了安全问题设置的,是HTML编码对象,可以使带有HTML标签的文本不被解释为HTML标记,这样可以防止被恶意者来写入特殊执行代码,造成不
必要的损失。
这样就写好了,如下图所示:
接着再做OICQ,EMAIL,HOMEPAGE的链接设置,这个和上述不太一样,它不是直接显示出记录即可,而是将鼠标移到QICQ上浮现留言者的QQ号码,点击EMAIL自动给留言者发信,点击HOMEPAGE直接到达留言者的网站。
选中OICQ,加上“#”空链接,同样的也给EMAIL和HOMEPAGE加上“#”空链接。
如下图所示:
大家都知道给图片加提示比较简单,直接在ALT里设置文字说明就可以了,但文字却没有ALT,没关系,我们的Dreamweaver早就想到了,很强大哦!在代码区里OICQ的空链接#后,按空格(注意是英文输入法才有效)会出现智能提示参数出来,我们选择“title”,然后接着打上“<%= rs(”oicq“)%>”即可!如下图所示:
同样的方法给EMAIL和HOMEPAGE加上啊,方法如下图划红线所示:
一切OK了!!^_^发现设计视图里的OICQ,EMAIL和HOMEPAGE的背景变成了浅蓝色,这说明我们在链接上给它们加了ASP代码,这样不同的提示是否很体贴啊:)
你肯定等不及了,看看效果吧!但还没有记录啊,没有做留言提交页和回复页,删除页,只好暂时在数据库里手动添加记录吧。
经过一些时间,千呼万唤始出来,不好意思,让大家久等了。
上次做的留言板只能显示数据,让我们赋于它生命吧,让这个留言板把网友们互动起来,大家可以积极发言,讨论侃山。首先要做一个写留言的网页,为了简单化,我们把写入留言的网页和提交保存留言的网页分成两个,这样容易看懂,方便学员分析。
我们先做写入留言的网页,静态或动态网页均可,不需要任何ASP代码,最好建个静态文件,这样浏览速度快,不增加服务器负担,也不是说全是ASP网页就好哦,有必要的时候该出手就出手!:)只需提供写留言的界面让网友填均可,新建write.htm,排版如下图:
注意给各个文本域命名,最好和数据表里的各个字段相同,这样赋值的时候容易对应,不会出错。然后选中红色虚线的表单,在属性栏里action栏里填入save.asp,这是将来接收网友的留言并保存到数据库里,我们后面会接着做这个网页。如下图:
写留言的表单页很简单,就这样制作完了,大家不要以为有多麻烦啊:)
下一步我们开始制作接收网友留言并处理的网页,新建save.asp网页,将上次做的表单提交的网页名称要一致啊,不能随便命名了。在网页HTML标签的最上面加入以
下红线框起来的代码,如下图:
以上代码分几个段落,并说明了每一块代码的意思,都是通用的基本操作,比较简单,如果有点困难的话,先放一放,先学好ASP基础再说哦.注意在划红线的地方我们增加了两个函数使用.一个是Trim函数,是用来帮助我们除去不必要的空格符,有很多人习惯多打几个空格出来,我们用这个函数来去掉空格就行了。
还有一个是Replace函数,我们在留言内容写了很多字,它到了边上会自动换行,或生成段落会生成回车符,这在提交前表单文本区域是正常的,但提交后数据库不能正常识别这两个特殊符号,在显示留言页只会生成一行,这可不得了啊,把表格撑得宽宽的,很不舒服。而Replace帮助我们来解决这个问题,它可以把文字段落里所有的自动换行符和回车符找出来(vbCrLf是自动换行符和回车符的代码),并自动转换为
字符串,这样HTML就可以正常解释了。
提交保存留言页基本上就完成了,为了更加友好一点,表示提交成功,我们再多做一点工作,一切为了网友方便嘛!我们回到设计视图环境中,插入大表格在正中央,写入“留言成功!2秒后自动返回首页”,在返回首页加入链接到 index.asp网页里。如
下图:
提交成功后2秒钟后自动返回首页,是不是很难啊??其实一点都不难!用Dreamweaver自带的功能就轻松解决这个问题,我们操作如下图:
插入栏中切换到head栏里,点击Refresh按钮,会弹出对话框,如下图:
按以上内容填好,就万岁了,是不是太简单了,别太得意了啊^_^
我们的发表提交留言页就到此结束了,大家是不是很激动,可以留言了,赶紧拉人来试试吧,猛灌水过把自己的瘾吧:),这关我们顺利过了,就要一鼓作气做完其它的工作,就是回复页和删除页,有了以上的基础,就更加轻松了,相信我,是真的!
人总是不满足现状的,我们要永无止步,拿下最后的任务吧。
上次做的留言板有了生命力,可以互动提交留言了,但不能这么泛滥下去,我们还要做个删除页,删除无用的垃圾,网上也需要环保哦^_^.废话少说吧,我们开始建删除页,命名为del.asp。切换到代码视图中,把所有的HTML标签全部删掉,加入如下代码,见下图:
写完这些代码即完成了删除页的制作。让我们分析一下上面代码块的意思:
代码第三行:是删除语句,WHERE后面跟的是条件语句,只删除接受传递过来ID值的数据,这个很关键,一定要设好,否则会把数据表里的全部字段全部清空了,这也
太恐怖了吧。
代码第四行:CONN对象执行DELESQL删除语句结果。
代码第五行和第六行:关闭CONN对象并设为空释放资源。
代码第七行:response.redirect是输出转向对象,表示删除后自动转向到首页去。
接着我们还要再做回复页,总得有来有回嘛,否则别人再大的热情你不回复,也会冷却下来的。所以很有必要哦:),新建reply.asp网页,在设计视图里先排好版,如
下图:
注意红线的地方要加隐藏域,这样的目的是为了防止表单未提交但页面刷新却执行
代码的错误,设置如上图.排好后再切换到代码视图里,定位到HTML标签的最上面,加入如下红线框起来的代码,见下图:
以上代码块的意思有部分我已经在上面反复讲过了,不在重复了,如有不懂请在论谈提出来,我会补充的。这里我再说明一下回复的模块代码:
代码第四行:定位回复的位置,WHERE后面跟的是回复条件,只接受我们传递过来的留言ID值,并赋值到当前的ID变量上,这样我们只会对当前回复的留言页来回复,这个很关键,不然都乱套了。
代码第六行:用来判断是表单提交还是刷新页面,如果是提交表单,那么隐藏域的值肯定被提交,这样Request.Form(“active”)不为空,就执行以下回复语句.如果没提交表单,而是刷新页面,那么那么隐藏域的值没有提交,Request.Form(“active”)
肯定为空,就跳过不执行.
代码第八行:注意此代码前没有加rsedit.addnew,因为这是更新原有的记录,在原有的留言中在追加回复内容,而不是再添加一条新记录。
回复的代码设置好,我们再回到设计视图环境中,先定位到要回复的留言旁边的单元格里,点击后再点属性栏里的edit编辑按钮,弹出编辑框后填写代码“rsedit(“content”)”确定即可。如下图:
选中红色虚线表单,在action栏里填写如下:“reply.asp?id=<%=request(“id”)%>”,如下图:
回复页我们也做好了,是不是完事了?先别激动,还有一件事呢,忘了给首页index.asp的删除和回复还有发表新主题这三个加链接了,那不是空谈嘛,赶紧补上吧!
链接设置见下图:
< P>
超简留言板的教程就到此结束了,是不是非常超简啊:),不知道大家收获怎么样?希望能反馈给我哦。在这里我把本教程的源代码提供出来,给大家一个方便,可以直接
对照一下,祝你成功了!
编辑后话:幻想曲 还可以更人性化一点!比如如果用户没有填写OICQ或是EMAIL地址就不显示出来!当然,回复和删除是要经过登录验证的!这些东东我相信是作者留下来让朋友们自行完成的吧!鼓励一下这篇不错的教程!
作者虽然是在用DW,但没有依赖于DW自动生成的代码.这对于那些想学ASP而又一直借助于DW的朋友们来说确是一个不小的帮助!另外:提交留言时是不是要把单引号屏蔽掉呢?不然SQL语句是很容易出错的!作者后话:我已经有了完善版的大飞猪留言板,但考虑到是让学生更能入门,所以没有加上去,免得起不到效果,完善版的主要是加了权限功能,登录系统,主要是版主才能回复和删除才行的.这个会更多的,怕吓跑了初学者,有经验的学习者可以向我索要源代码!
改日我再发布完善版的教材出来!
第三篇:简单易学的ASP留言板制作教程
ASP留言本教程(1)时间:2010-04-09 22:53 点击:17次 作者: 来源:网页教学网
二、设计数据库
ASP程序本身并不能储存数据,众所周知,留言本有以下信息需要保存:留言者姓名、联系方式、留言内容等等。因为ASP并不能储存数据,所以数据库在这种环境之下就产生了。数据库的种类也很多,针对不同的程序也有适用于它的数据库,比如Access和Ms SQL就比较适用ASP和ASP.net程序,至于其它的数据库和程序,就不属于本文所讨论的问题了,有兴趣的朋友可以查看其它一些资料。
那么既然Access和MS SQL都适用ASP,那么具体又如何来选择呢?我们可以打一个比方:比如钉一枚小钉子,聪明的人一定不会用一个大的棒槌,而是选择小的铁锤,虽然用大的棒槌也一样的可以把钉子钉进去,可是没有人愿意这样做。
数据库也一样:Access比较适用小型的应用,而MS SQL则适用于大中型的数据库应用,所以要做一个留言本,理所当然是选择Access更好一些,但是如果你决心使用MS,没有人会极力阻止你。好了,废话少说,切入正题,下面开始创建数据库。
Access是微软office办公软件中的其中一个,默认的安装Office是有这个Access的,好了,打开程序,开始了,GO!
进入实战了。打开程序后,出现一个对话框,这里我们选择第一个选项"空Access数据库"点击确定,弹出一个新建数据库的文件框,选择你上次你建的站点目录,起个data的文件名,点击创建,OK!双击"使用设计器创建表"打开表创建窗口"如图
创建表的结构如下表:
字段名称
数据类型
备注(笔者注释)
id 自动编号 设置“自动编号” name 文本 留言者姓名
qq 数字 留言者的QQ,因为QQ号是由数字组成 email 文本 留言者的电子邮件 content 备注 留言内容
data 日期/时间 留言时间,设定默认值为Now()
数据库设计好了以后,可以直接在数据库里添加两条记录,以后测试时候用!这一节就到此了
ASP留言本教程(2)时间:2010-04-09 22:53 点击:17次 作者: 来源:网页教学网
三、连接数据库
在上一节,我们已经为我们的程序创建了一个数据库,在这一节中,我们来用ASP把程序和数据库连接起来,以后就可以连接到数据库、在ASP中显示数据库中的数据以及更复杂的插入、修改和删除。
一起看以下代码,这就是ASP程序中常用的连接数据库的代码: <% set conn=server.createobject(“adodb.connection”)connstr=“Provider=Microsoft.jet.oledb.4.0;data source=”&server.mappath(“data.mdb”)conn.open connstr %>
解释一下以上代码: <%
'这是ASP程序的起始
set conn=server.createobject(“adodb.connection”)
'在服务器上创建了一个连接数据库的对象
connstr=“Provider=Microsoft.jet.oledb.4.0;data source=”&server.mappath(“data.mdb”)
'告诉ASP数据库的接接方法以及路径
conn.open connstr
'创建了对象后就用来打开数据库进行连接 %>
'一切OK了!结束ASP程序
将上面的代码另存为conn.asp文件,放在服务器目录下面就可以了。怎么样,简单吧?
这一节是最重要的,一定要弄明白,否则以后操作数据库将变得不现实,如果有不懂的问题,欢迎和我讨论,我的电子邮件地址是。这一节就到此,下节我们就将数据库中的数据显示在页面中(这就实现了留言本的查看功能)
ASP留言本教程(3)时间:2010-04-09 22:53 点击:17次 作者: 来源:网页教学网
三、制作留言本首页
前面我们已经连接好了数据库,就要让它在这里发挥一下作用了,这一节将讲述如何将数据库里的数据用ASP读取出来,在页面中显示出来,这样就等于是查看留言本了。
利用DW制作如下页面(这里我就不讲如何去做这个页面了,最后我将会给出HTML代码下载)
将制作好的文件存为index.asp,下面就创建数据记录集,用来显示数据库的数据到这个页面中:
用记事本打开index.asp,在页头加入以下代码:
<%@LANGUAGE=“VBScript” codepage=“936”%> <% set rs=server.createobject(“adodb.recordset”)sql=“select user,qq,email,content,data from main order by id desc” rs.open sql,conn,1,1 %>
解释一下:
第一行,表明ASP使用的是VB脚本
第二行,是用include包含文件,这里包含的是数据库连接文件。第三行,ASP程序开始
第四行,利用Server内置对象创建一个记录集
第五行, SQL语句,这里的意思是选择数据库中的user,qq,email,content,data字段,指定该数据表的名称是“main”数据的排列顺序是倒序。
第六行,用刚才创建的名为rs的记录集打开数据库,设置属性为只读(1,1为只读数据,1,3为插入数据,2,3是修改数据。
这样就打开了数据库,接下来就可以显示了。
将“留言人”代替为“<%=rs(“user”)%> “时间”代替为“<%=rs(“data”)%>
“留言内容在此”代替为“<%=rs(“content”)%> “QQ”链接到:
“邮件”链接到:mailto:<%=rs(“email”)%> 最后将“填写留言”链接 add.asp “管理留言”链接 admin.asp
好了,再次保存,浏览看看!
怎么了?只显示一条记录?原来我们在数据库里添加了两条记录的哦!还有一条呢?别急,因为我们没有指定ASP循环显示,所以就只有一条啦。。
在刚才的代码后面添加一行
<%do while not rs.eof%>
并在页面的第一个表格的末尾加上
<% rs.movenext loop %> 上面的代码就是说用rs记录集指针一条一条往下一条移动,直到末尾,loop是循环的意思。哈哈,再次浏览这个文件
看明白了吗,这样就可以让数据库中的数据全部显示在页面中了,好了,这节就到这,下节讲一个也很重要的部份(添加留言功能。)
ASP留言本教程(4)时间:2010-04-09 22:53 点击:17次 作者: 来源:网页教学网
三、制作添加留言页面,实现留言功能
我们是做的一个留言本,实现留言的功能就十分重要了,要不然就算不上留言本了,接下来就一起来实现这个功能。
用DW制作以下这样的页面:
设置表单的属性如下:
姓名:设置为单行文本域,名称为“user” QQ号:设置为单行文本域,名称为“qq” 邮件:设置为单行文本域,名称为“email” 内容:设置为多行文本域,名称为“content”
最后将表单的“Action”动作指向addsave.asp就可以了。
保存文档名为add.asp,OK!下一步!
表单是做好了,但是还需要后台程序的支持,一起来使用ASP编写一个添加留言处理程序,添加留言代码:
<%@LANGUAGE=“VBScript” codepage=“936”%>
'表明ASP使用的是VB脚本
'是用include包含文件,这里包含的是数据库连接文件 <% set rs=server.createobject(“adodb.recordset”)
'利用Server内置对象创建一个记录集
sql=“select user,qq,email,content,data from main”
'SQL语句,上节有详解 rs.open sql,conn,1,3'用刚才创建的名为rs的记录集打开数据库,设置属性为插入数据
rs.addnew
'用记录集新添加一条数据
user=request.form(“user”)
'请求表单的变量,定义变量为user,这里request.form是请求表单的意思
qq=request.form(“qq”)
'请求表单的变量,定义变量为qq,这里request.form是请求表单的意思
email=request.form(“email”)
'请求表单的变量,定义变量为email,这里request.form是请求表单的意思
content=request.form(“content”)
'请求表单的变量,定义变量为content,这里request.form是请求表单的意思
rs(“user”)=user
'将请求到的表单值传向记录集中代表user字段的名称 rs(“qq”)=qq
'将请求到的表单值传向记录集中代表qq字段的名称
rs(“email”)=email
'将请求到的表单值传向记录集中代表email字段的名称 rs(“content”)=content
'将请求到的表单值传向记录集中代表content字段的名称
rs.update
'更新一下数据库中的数据。rs.close
'关闭记录集 set rs=nothing
'销毁记录集 conn.close
'关闭数据库连接 set rs=nothing
'销毁数据库连接 %>
将以上文件存为addsave.asp,测试下!咦?怎么填好提交以后就出现空白了,为什么?这是因为在addsave.asp中没有设置数据成功提交好后的转向页面,这里不用做那么复杂的,只要做一个刷新页面就行了,在程序的后面加上:
然后在页面中添加提示信息,比如:“您的留言已经成功提交,2秒钟后将自动返回留言本首页”
好了,这个留言的功能总算实现了,最后再测试下,看看效果!
OK!这个留言功能的实现教程就到这里了。
ASP留言本教程(5)时间:2010-04-09 22:53 点击:17次 作者: 来源:网页教学网
六、制作管理登陆页面
留言本的管理功能对于留言本来说就不言而喻了,像论坛的登陆功能就是一个很好的例子,不过我们做留言本基本上有删除功能就行了,写这个教程是为了更多的ASP入门者更好的了解ASP,所以旨在学习用,当然也可以在这基础上添加更多的功能,比如回复留言者。
好了,开始了,还是按照以前的,用Dreamweaver做一个登陆页面,如下图:
把用户名的表单名称设置为admin,密码的表单名称设为password,把动作指向checkpass.asp,存admin.asp这样登陆页面就好了,下面就做检测密码的ASP程序了,看以下代码解释:
'把conn.asp包含进来连接数据库 <% 'ASP起始
admin=request.form(“admin”)'定义admin的值是表单传过来的用户名域名称admin password=request.form(“password”)'定义admin的值是表单传过来的用户名域名称admin if admin=“" or password=”“ then '这句的意思是假如用户名和密码没有输入的话那么执行下一句
response.Write(”“)'用javascript脚本提示用户 end if '结束if语句
sql=”select * from admin where admin='“&admin&”' and password='“&password&”'“ '这句很重要,我们放到后面讲
set rs=conn.execute(sql)'设定记录集rs,用conn执行SQL语句 if rs.eof or rs.bof then '当没有符合筛选结果时,则执行下面的句子 response.write ”“ '用javascript脚本提示用户 else '如果符合条件的时候
session(”admin“)=admin '新建session,值等于表单传来的用户名 response.redirect ”mymanage.asp“ '转向到mymanage.asp,进入管理页 end if '结束if语句 %> 'ASP结束
将以上代码保存为checkpass.asp
这样,用户在admin.asp页面中输入用户名和密码后,就把用户名和密码值传给checkpass.asp处理,当用户名和密码的值和数据库中的字段相匹配时,就进入mymanage.asp这个管理页面,同时建一个session,这个session的会话变量将在后面起作用,下一节就明白了。
ASP留言本教程(6)时间:2010-04-09 22:53 点击:17次 作者: 来源:网页教学网
七、制作管理页面
上节中讲的是制作登陆页面和检测用户,当用户名和密码正确时就转到管理页面,好了,开始实现它。
其实这个留言本的管理页面和用户直接看到的首页没有多大的区别,只是用了Session会话变量用作保护和增加了一个删除链接,当点击这个链接的时候,就会自动删除这条留言,好了,其本的目的知道了,那就GO!
刚才讲了,这个页面和首页的index.asp相似,那么就先复制就行了,然后再改一下
首先找到下面这句:
sql=”select user,qq,email,content,data from main order by id desc“ 把它改为
sql=”select id,user,qq,email,content,data from main order by id desc“ 这样,就选取到了id这个自动编号的值,以便删除留言时锁定这个id。
然后在“邮件”这个链接后面增加一个链接“删除”,链接:del.asp?id=<%=rs(”id“),修改代码后为“ onclick=”return confirm('是否确定删除本留言?');“>删除 这样,待会我们做del这个页的时候,就会知道为什么了!
改过后存为mymanage.asp
现在打开浏览器看看!
怎么不用输入用户名和密码都可进入呀?别急,上节中,我们不是建了一个session的会话变量,这时就派上用场了,直接用记事本打开。在<%@LANGUAGE=”VBScript“ codepage=”936“%>这句的后面加上<%if session(”admin“)<>”“ then%>这句,在末尾写上: <% else response.Redirect(”admin.asp“)end if%> 下面来讲解一下。
<%if session(”admin“)<>”“ then%> '就是说如果session这个(”admin“)的值不是空的话就执行。<% else response.Redirect(”admin.asp“)end if%> '为空的话就转向登陆页,重新登陆,这样的话,直接输入网址的话就会跳到admin.asp,简单吧!
好了,这节就到这里了。
ASP留言本教程(7)时间:2010-04-09 22:53 点击:17次 作者: 来源:网页教学网
八、删除留言
上节我们增加了一个删除留言的链接,以下是这个del.asp的代码
<% set rs=server.createobject(”adodb.recordset“)id=Request.QueryString(”id“)sql=”select * from main where id=“&id rs.open sql,conn,2,3 rs.delete rs.update %>
很明了吧,才几句,第1、2、3句都不用我解释了,大家都在上几节中明白了。
第4句:
id=Request.QueryString(”id“)用id取值字符串中传的id,回头看一下删除的链接:del.asp?id=<%=rs(”id“)%> 就是这个链接才把id的值传来的,<%=rs(”id")%>是读取数据库中的自动编号字段中的id。
第5句:
用sql定义SQL语句,这里的*是通配符,表示所有,而Where有点像我们汉语中的“当”,整句话的意思是选择所有来自表名为main的字段,它的条件是当数据库中的id字段是字串所传来的id。如果这个没有的话这个一时间不明白也不要紧,慢慢接触就知道了。
第6句是打开符合条件的记录,确切的讲不应该叫记录集了,因为经过我们这样筛选的话,记录绝对是一条,2,3指定可以对数据库中的数据进入修改。
第7、8句 rs.delete 看了就明白了,原来这才是整个程序的精髓,就是执行删除了。rs.update 这是更新数据库中的表,删除后就更新。
最后大家自己用rs.close和conn.close释放。
第四篇:简易英语配音秀制作教程
准备:
1.Adobe After Effects,和Adobe premiere安装包 2.录制好的音频以及视频片段
3.Adobe After Effects字幕模板以及片头模板
操作:
1.安装Adobe After Effects,和Adobe premiere 2.将录制好的音频和电影片段导入Adobe premiere(将文件直接拖入左下角素材区)
3.将视频拖入左上交的编辑区
4.通过标记入点和出点选择要用的视频片段
5.将选择好的区域插入预览区
6.点击右键,选择“解除音视频链接”,之后删掉视频原声(选择单击音轨之后,右键单击音轨,单击“清除”)
7.如果需要多段视频则重复该操作
8.将音频托入左上角编辑区,同样操作,标记出入点,删掉开始和结尾不需要的声音和噪声,插入到右边序列,操作同视频操作
9.将音频和视频对齐,需要手动微调操作,拖动音轨,直到视频中的口型和音频配音相符合为止。
10.选择“文件”-“导出”-“媒体”
11.格式选择H.264,预设根据需要选择,高清选择1080P,标清720P 12.单击输出名称选择导出路径,就是把导出文件放在哪个地方(导出时间和电脑配置,文件大小有关,普遍十分钟左右,大的文件半小时以上,请耐心等待不要进行其他操作)13.这样,一个没有字幕和片头的配音秀就完成了
关于加字幕和片头
1.打开Adobe After Effects 2.导入字幕模板 3.导入刚刚生成的视频
4.编辑字幕,比如”指导老师”“刘莉” 5.将字幕拖入你想让字幕出现的地方
6.单击空格预览,预览的速度和电脑配置有关,如果卡顿或者非常卡顿是正常情况。
7.反复拖入,即可加入多个字幕
8.点击渲染,即可听到声音,之前的操作没有声音是正常情况
9.Ctrl+M进行渲染(导出时间和电脑配置,文件大小有关,普遍十分钟左右,大的文件半小时以上,请耐心等待不要进行其他操作)
片头
1.打开Adobe After Effects 2.导入片头模板
3.找到片头中文字的项目,将文字改为你需要的文字
4.找到片头中图片的项目,将文字改为你需要的图片(模板中没有图片可以忽略这一步)
5.预览,渲染导出,操作和加字幕一样(导出时间和电脑配置,文件大小有关,普遍半小时左右,大的文件一小时以上或者更久,请耐心等待不要进行其他操作)
6.加音乐,将生成好的片头导入PR,混入声音,操作和对配音秀的操作一样 7.将加好字幕的配音秀导入PR,放在片头的后面。(如果发现没有音轨或者没有声音可以重新加声音)
导出(导出时间和电脑配置,文件大小有关,普遍半小时左右,大的文件一小时以上或者更久,请耐心等待不要进行其他操作)(5分钟的文件大约20G左右,请准备好预留空间)8.完成
第五篇:简易留言板课程设计报告
武汉软件工程职业学院
课程设计报告
2016-2017学第 二 学期
题目:
简易留言板设计
姓名:
肖志超
班级:
网络1502
系部:
计算机学院
指导教师:
梁晓雅
日期:2017年6月13日
[摘要]
在网络网络技术迅速发展以信息交流频繁的今天,网络应用已经渗透到人类社会的各个角落。作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领,日益成为与百姓交流的直通车;企业利用网站宣传自己的形象,进而挖掘无限商机;个人利用网站展示个性风采,创建彼此沟通的桥梁。越来越多的网站建立了自己的www.xiexiebang.command cmd = new SqlCommand(yh, conn);
if((int)cmd.ExecuteScalar()> 0){ string yhx = “admin”;string yhxx = “select count(*)from userinfo where uname='” + TextBox1.Text.Trim()+ “'and upwd='” + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text.Trim(), “MD5”)+ “'and ulevel='” + yhx + “'”;SqlCommand cmd1 = new SqlCommand(yhxx, conn);if((int)cmd1.ExecuteScalar()> 0){ Session[“sf”] = “admin”;Session[“s”] = TextBox1.Text.Trim();} else { Session[“sf”] = TextBox1.Text.Trim();;} Response.Redirect(“xgxx.aspx”);} else { Response.Write(“”);}
}
protected void LinkButton1_Click(object sender, EventArgs e){
string yh = “select count(*)from userinfo where uname='” + TextBox1.Text.Trim()+ “'and upwd='”
+FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text.Trim(),“MD5”)+ “' ”;conn.Open();SqlCommand cmd = new SqlCommand(yh, conn);
if((int)cmd.ExecuteScalar()> 0){ Session[“uname”] = TextBox1.Text;
Response.Redirect(“ly.aspx”);} else { Response.Write(“”);}
}
4.2.新用户注册
在登录页面点击注册即可进入新用户注册页面
核心代码如下
static string Coonstr = System.Configuration.ConfigurationManager.ConnectionStrings[“coonstring”].ToString();SqlConnection conn = new SqlConnection(Coonstr);static int i = 1;protected void Page_Load(object sender, EventArgs e){ }
protected void LinkButton2_Click(object sender, EventArgs e){ Response.Redirect(“Default.aspx”);}
protected void LinkButton3_Click(object sender, EventArgs e){ string xyh = “select count(*)from userinfo where uname='” + TextBox1.Text.Trim()+ “'”;conn.Open();SqlCommand cmd = new SqlCommand(xyh, conn);
if((int)cmd.ExecuteScalar()> 0){ Label1.Text = “用户名重复”;} else { Label1.Text = “可以使用的用户名”;int i = 0;} }
protected void LinkButton1_Click(object sender, EventArgs e){
conn.Open();if(i!= 0){ string ss = “user”;//string cyh = “insert into userinfo values('” + TextBox1.Text + “','” + TextBox2.Text + “','” + TextBox4.Text + “','” + ss + “''” + DropDownList1.SelectedValue.ToString()+ “','” + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox5.Text, “MD5”)+ “')”;string cyh = “insert into userinfo(uname,upwd,uemail,ulevel,uquestion,uanswer)values('” + TextBox1.Text + “','” + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text, “MD5”)+ “','” + TextBox4.Text + “','” + ss + “','” + DropDownList1.SelectedValue.ToString()+ “','” + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox5.Text, “MD5”)+ “')”;SqlCommand cmd = new SqlCommand(cyh, conn);int num = cmd.ExecuteNonQuery();if(num > 0){ Response.Write(“”);} else { Response.Write(“”);} } else { Response.Write(“”);}
}
4.3找回遗忘的密码
在用户登录界面中输入用户名,单击“忘记密码”链接按钮打开如图所示的界面,程序根据用户输入的用户名,在页面中显示注册时填写的安全问题,若用户能正确回答安全问题答案,即可重置密码
核心代码如下
public partial class zhmm : System.Web.UI.Page { static string Coonstr = System.Configuration.ConfigurationManager.ConnectionStrings[“coonstring”].ToString();SqlConnection conn = new SqlConnection(Coonstr);protected void Page_Load(object sender, EventArgs e){ if(!IsPostBack){ Label1.Text = Convert.ToString(Session[“zhmm”]);if(Label1.Text==“"){ Response.Redirect(”Default.aspx“);}
DropDownList1.Items.Clear();conn.Open();this.DropDownList1.Items.Add(”“);string mm = ”select uquestion from userinfo where uname='“+Session[”zhmm“]+”'“;SqlCommand sql = new SqlCommand(mm, conn);SqlDataReader dr = sql.ExecuteReader();while(dr.Read()){ this.DropDownList1.Items.Add(dr[”uquestion“].ToString());}
}
}
protected void LinkButton1_Click(object sender, EventArgs e){ string m = ”select count(*)from userinfo where uname='“ + Session[”zhmm“] + ”'and uanswer='“ + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox1.Text.Trim(), ”MD5“)+ ”'and uquestion='“ +DropDownList1.SelectedValue.ToString()+ ”'“;conn.Open();SqlCommand cmd = new SqlCommand(m, conn);
if((int)cmd.ExecuteScalar()> 0){ Response.Write(”“);} else { Response.Write(”“);} }
protected void LinkButton2_Click(object sender, EventArgs e){ Response.Redirect(”Default.aspx“);}
4.4.修改用户信息
在用户登录页面中输入用户名和密码,单击“修改用户信息”链接按钮讲打开用户管理页面。管理员用户可以使用页面中的所有功能,而普通用户只能修改自己的密码,电子邮箱等信息。
核心代码如下
public partial class xgxx : System.Web.UI.Page { static string Coonstr = System.Configuration.ConfigurationManager.ConnectionStrings[”coonstring“].ToString();SqlConnection conn = new SqlConnection(Coonstr);protected void Page_Load(object sender, EventArgs e){ if(!IsPostBack){ if((string)Session[”sf“] == ”admin“){ string dr = ”select uname ,uemail,ulevel from userinfo where ulevel='user'“;DropDownList1.Items.Clear();conn.Open();DropDownList1.Items.Add(Session[”sf“].ToString());DropDownList2.Items.Add(”admin“);SqlCommand sql = new SqlCommand(dr, conn);SqlDataReader dr1 = sql.ExecuteReader();while(dr1.Read()){ this.DropDownList1.Items.Add(dr1[”uname“].ToString());} conn.Close();
string drq = ”select uname ,uemail,ulevel from userinfo where ulevel='“ + Session[”s“] + ”'“;conn.Open();SqlCommand sq1l = new SqlCommand(drq, conn);SqlDataReader dr11 = sq1l.ExecuteReader();
while(dr11.Read()){ TextBox3.Text = dr11[”uemail“].ToString();
} } else { DropDownList1.Items.Add(Session[”sf“].ToString());DropDownList1.Enabled = false;DropDownList2.Items.Add(”user“);LinkButton2.Enabled = false;} } }
protected void LinkButton1_Click(object sender, EventArgs e){conn.Open();string cz = ”update userinfo set upwd='“
+FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text.Trim(),”MD5“)+ ”',uemail='“+TextBox3.Text.Trim()+”' where uname='“ + Session[”sf“] + ”'“;SqlCommand cmd = new SqlCommand(cz, conn);if((int)cmd.ExecuteNonQuery()> 0){ Response.Write(”“);} }
protected void LinkButton3_Click(object sender, EventArgs e){ Response.Redirect(”Default.aspx“);}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e){ TextBox3.Text = ”“;string yx = ”select uemail,ulevel from userinfo where uname='“+DropDownList1.SelectedValue.ToString()+”'“;conn.Open();DropDownList2.Items.Clear();SqlCommand sql = new SqlCommand(yx, conn);SqlDataReader dr1 = sql.ExecuteReader();while(dr1.Read()){ TextBox3.Text = dr1[”uemail“].ToString();DropDownList2.Items.Add(dr1[”ulevel"].ToString());}
}
五、总结
做课设让我对ASP.NET有了新的认识,首先我接触了很多上课见过见过但没有实际用过的类和方法,让我对编程有了许多新的思想。虽然系统的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助。我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义,不管什么系统,只用运用到实际应用中,才具有先现实意义。所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。这次课程设计本人主要参与了系统实现以及系统测试,还有参与小组共同完成的编写代码、实现功能模块。历时两个星期终于在大家的一起努力下顺利完成了。虽然过程辛苦是不可避免,但收获还是令人感到尤其的欣慰。在这次的课程设计中不仅检验了我所学习的知识,也培养了我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。实验过程中,也十分感谢实验指导老师马骏老师的指点与教导。这次课程设计不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。通过这次课程设计使我明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力.参考文献
常永英,ASP.NET程序设计教程(C#3)[M].北京:机械工业出版社,2007.常永英,ASP.NET程序设计教程(C#3)[M].上机指导与习题解答。北京:机械工业出版社,2007.崔淼.VisualC#2005程序设计教程[M]。北京:机械工业出版社,2007.张亚习.精通ASP.NET3.5网络开发技术[M].北京:电子工业出版社,2009.Stephen Walther.ASP.NET3.5揭秘(卷1)[M].北京:人民邮电出版社,2009.Stephen Walther.ASP.NET3.5揭秘(卷2)[M].北京:人民邮电出版社,2009.刘瑞新.Visual Basic。NET程序设计教程[M].北京:机械工业出版社,2005.