简答题
第1章https://www.doczj.com/doc/4b3568035.html,概述P18
(1)名词解释
静态网页:一般指用超文本标记语言HTML来实现,以htm或html做后缀名的网页文件,这些网页文本中不存在需要服务器段解释的代码;所有人浏览到的同一网页不会有任何区别。
动态网页:所谓动态网页,就是服务器端可以根据客户端的不同请求动态产生网页内容。它根据不同类型的客户端请求生成不同的页面,具有交互性。动态网页是用标准html代码和动态语言(如:asp,jsp,php,https://www.doczj.com/doc/4b3568035.html,等)编写的。
服务器端:在万维网中提供网页服务的一端称为服务器端。
客户端:接受服务的一端称为客户端。
名称空间:所谓名称空间就是将多个提供相似功能的类组成逻辑上相关的一些单元,以便于管理和记忆。例如system.io类包含了用来处理输入输出操作的类。应用程序:在同一台电脑上,添加了虚拟目录的文件夹就被当成一个独立的网站对待,这个独立的网站就成为一个应用程序。所以用https://www.doczj.com/doc/4b3568035.html,新建一个应用程序的时候,该软件会自动帮你生成一个文件夹,并且在IIS中添加相应的虚拟目录。(1)请比较静态网页和动态网页的工作原理:
静态网页和动态网页在客户端看来是除了发送请求是的后缀名外没有其它任何区别,主要是服务器端的区别。静态网页服务器在接收了客户端的请求后直接读取相应的网页文件返回给客户端,而动态网页服务器在接收到了客户端发来的请求后先找到相应文件然后根据相应参数将文件编译成标准的html代码,在返回给客户端。
第2章https://www.doczj.com/doc/4b3568035.html,程序设计基础P62
(2)有100个和尚吃100个馒头,大和尚1人吃4个,小和尚4人吃1个,问有多少个大和尚和多少个小和尚?
sub page_load()
dim m,n,big_monk,small_monk as integer
message.text="可能的组合是:
"
for m=1 to 100
big_monk=m
small_monk=100-m
if 4*big_monk+small_monk/4.0=100 then
message.text+="大和尚:" & big_monk & "个,小和尚" & small_monk & "个;
"
end if
next
end sub
第3章、服务器控件P98
3、普通的HTML标记、HTML服务器控件、Web服务器控件有什么联系和区别?
HTML服务器控件和WEB服务器控件都是从普通HTML发展过来的,只要给普通HTML代码添加id和runat=server属性就变成了HTML服务器控件,
WEB服务器控件是.net提供的一套全新的控件,它的设计合理使用更简便,但是目前还没有和HTML完全一一对应。推荐使用WEB服务器控件。
3、什么时候该使用HTML标记、HTML服务器控件、Web服务器控件?
在不需要和服务器端交互的程序中应该尽量使用普通html代码,这样会减轻服务器负担,在需要交互时尽量使用web服务器控件,实在没有可用的web 服务器控件再考虑html控件。
第4章内部对象P136
4、请叙述response的write方法的两种写法的区别及注意事项。
write的两种写法:<%response.write(“string”)%> and <%=”string”%>.见:P111 4、请将response的write方法与利用标签控件输出信息进行比较。
利用response.write方法和label都可以输出信息,但是label相对比较容易控制输入的位置和格式。建议用label。
4、请叙述redirect方法、execute方法、tranfer方法、超链接四者的联系和区别。
redirect虽然是在服务器端运行,但是重定向实际上发生在客户端,但是execute和transfer的重定向是发生在服务器端的;execute的重定向完毕后会返回本页面继续执行下面的程序,但是transfer则不;超链接则是纯粹的客户端行为。
4、请叙述Session对象和application对象各自的作用和最主要的区别。
session用来在不同的页面传递同一个人的信息,而application则在同一页面储存不同用户的信息。
第5章:数据库基础知识P153
5、请叙述为什么要采用数据库来管理数据。
采用数据库来管理数据的理由:
数据库是目前最多使用的操作数据的方法,因为数据库用户不再需要知道数据的具体存放格式和方法,只要通过标准的数据查询语言来操作数据,这样的数据管理快速高效而且易于保存,备份和恢复。没有理由还是用前两种手段来管理数据。
5、在insert语句中,能否为自动编号字段赋值,为什么?
Insert语句中,不需要为自动编号字段赋值,因为数据库会自动进行。
第6章https://www.doczj.com/doc/4b3568035.html,存取数据库P182
6、某数据库程序可以显示记录,但不能添加记录,请问可能是什么原因?
可以显示但是不能添加记录最可能的原因就是程序对数据库文件只有读权限但是没有写权限。
6、更新记录时可否先删除、再插入记录?这样有什么缺点?(提示:自动编号字段的值可能会改变)
应该是“修改记录时可否……”;这样多做一步,服务器负担加重,而且用update可以只修改一项,但是先删除后添加就必修把每一项都添加了才能达到同样的效果,再者自动编号值会变化。
6、在查询记录的时候,如果只想显示部分字段的内容,应该怎么做?如果只想显示部分记录,又该怎么做?(提示:参考第五章的SQL语句)
不要使用*,而使用select 要查询的字段1,要查询的字段2 from 表where 条件语句,就可以只查询部分字段了,只想显示部分记录,只要控制好查询条件就行了,或者在显示的时候做一下判断。
第7章深入进行数据库编程P235
7、如何在datagrid控件中加上验证控件?
可以使用TemplateColumn自定义列来给DataGrid添加控件验证功能。
7、如何用repeater控件虽更新和删除记录?
虽然Repeater组件不支持更新和查询,但是可以通过LINKBUTTON添加CommandName 然后根据不同的Command 进行最定义操作,这些操作当然可以包括更新和查询。
7、请比较DataGrid、DataList、Repeater控件的联系和区别?
DataGrid提供了最多的功能,如允许访问者对记录编辑、排序或分页。同时它也是最容易使用的,甚至于简单到只需要将之添加到页面中而不必额外编写代码。不过这些易用性是以性能的损失为代价的。DataGrid在三种控件中是效率最低的,特别是在使用Web Form的情况下。
通过使用模板,DataList提供了比DataGrid更加优秀的界面效果。不过这需要以牺牲一定的开发时间为代价。为了添加排序、分页和编辑功能,程序员不得不花费比使用DataGrid更多的精力来进行编码,虽然它的性能要优于DataGrid。
最后,Repeater允许对数据记录作最大限度的HTML定制。通常,使用Repeater来显示数据记录比使用DataGrid和DataList要耗费更长的开发时间。另外,它不支持内建的编辑、排序和分页功能。所幸的是,Repeater在性能上要优于其它两种控件,特别是明显优于DataGrid。
第8章文件和文件夹操作P258
8、请比较file 和fileinfo对象
比较file和fileinfo对象:file对象能实现对整个文件的移动,删除等更改;而fileinfo对象只能显示出某文件的信息,不能更改。
8、请比较分别用application对象、数据库和文本文件实现计数器的优劣。
Application对象作计数器好处是方便快捷,但是会随着服务器的重新启动而清零;数据库可以记录很多登陆信息,不只是有几个人登陆,而且可以很方便的记录登陆时间,IP等等信息,但是查询数据库会消耗过多资源;用文本文件可以很方便的查看,更改,不利的一面是不能记录太多的信息。
程序题
第三章服务器控件P98
3、请开发一个简单的计算器,输入两个数后可以求两个数的和、差等。
Sub Enter_Click(sender As Object, e As EventArgs)
all.visible=false
dim i,j as integer
dim m as string
i=Cint(num1.text)
j=Cint(num2.text)
m=sign.selecteditem.text
dim result as integer
if m="+" then
result=i+j
else
result=i-j
end if
message.text=i & m & j & "=" & result &"!"
End Sub
3、请综合使用本章讲授的控件,开发一个个人注册页面。要求输入用户名、用户姓名、密码、出生日期、电话、E-mail等个人信息,并要求进行必要的验证。如有可能,再加上提交个人照片栏目。正确提交后,显示输入的有关信息。
sub enter_click(sender as object,e as eventargs)
dim error_1 as exception
if page.isvalid=true then
registerform.visible=false
'隐藏注册填写栏目,显示注册成功信息。
dim strname,strpassword,stremail,strqq,strphone,strtext as string
strname=username.text
strpassword=userpassword.text
stremail=useremail.text
strqq=userqq.text
strtext=usertext.text
'将信息存入数据库
try
dim conn as new
oledbconnection("provider=microsoft.jet.oledb.4.0;data
source=C:\Inetpub\wwwroot\fuyude\data\info.mdb")
dim strsql as string
strsql="insert into users
(user_name,user_password,user_email,user_qq,user_text) values('" & strname & "','" & strpassword & "','" & stremail & "','" & strqq & "','" & strtext & "')"
dim cmd as new oledbcommand(strsql,conn)
conn.open()
cmd.ExecuteNonQuery()
conn.close()
message.text="
注册成功!thanks,
href=login.aspx>登陆
"catch error_1
message.text="您输入的用户名已经存在或者在保存数据时发生了其它错误,请你重新输入,具体错误为:
" & error_1.tostring() end tryend if
end sub
3、请开发一个简单的在线考试程序,可以包括若干道单选题、多选题、单击交卷按钮后就可以根据标准答案在线评分。
Sub enter_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim defen As Integer
defen = 0
If danxuan1.SelectedIndex = 2 Then
defen += 20
End If
If danxuan2.SelectedIndex = 3 Then
defen += 20
End If
If danxuan3.SelectedIndex = 0 Then
defen += 20
End If
If duoxuan1.Items(0).Selected And duoxuan1.Items(1).Selected And (Not duoxuan1.Items(2).Selected) And (Not duoxuan1.Items(3).Selected) Then defen += 20
End If
If duoxuan2.Items(0).Selected And duoxuan2.Items(1).Selected And duoxuan2.Items(2).Selected And (Not duoxuan1.Items(3).Selected) Then defen += 20
End If
fenshu.Text = "您得了" + defen.ToString() + "分!" End Sub
第四章内部对象P136
4、请开发一个页面,显示来访者的IP地址。并判断:如果IP地址以202.118开头的,则显示欢迎信息;否则显示为非法用户,并终止程序。
sub page_load()
dim str as string
str=request.servervariables("remote_addr")
response.write("您的ip地址为:" & str & "
")
'定义一个数组来保存分割后的字符串
dim str_splited() as string
str_splited=str.split(".")
if str_splited(0)="202" and str_splited(1)="118" then
response.write("欢迎您的到来")
else
response.write("未经允许的IP侵入")
end if
end sub
4、请在自己的个人主页上加上访问人数。
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Application.Lock()
Application("user_visit_num") += 1
Application.UnLock()
Dim visitednum As Integer
visitednum = Application("user_visit_num")
message.Text = "您是第" + visitednum.ToString +
"位访客,welcome!"
End Sub
第六章https://www.doczj.com/doc/4b3568035.html,存取数据库P181
6、请参照示例开发一个简单的留言板程序,可以显示、添加和删除信息。
strSql = "select * from info"
conn.Open()
cmd = New OleDbCommand(strSql, conn)
Dim dr As OleDbDataReader = cmd.ExecuteReader()
Try
Do While dr.Read()
liuyan.Text += "留言者:" + dr.Item("author") + "留言内容:" + dr.Item("liuyan") + "(" + dr.Item("posttime").ToString + ")" + " href='2.aspx?action=del&id=" + dr.Item("id").ToString + "'>删除留言
"
Loop
If liuyan.Text = "" Then
liuyan.Text = "暂时没有留言!"
End If
Catch ex As Exception
liuyan.Text = "程序出错" + ex.Message
End Try
conn.Close()
End Sub
Sub add(ByVal sender As Object, ByVal e As System.EventArgs)
'添加留言
Dim _author, _liuyan As String
_author = author.Text.ToString
_liuyan = addliuyan.Text.ToString
If Not _author = "" And Not _liuyan = "" Then
strSql = "insert into info (author,liuyan) values ('" + _author + "','" + _liuyan + "')"
conn.Open()
cmd = New OleDbCommand(strSql, conn)
cmd.ExecuteNonQuery()
conn.Close()
End If
End Sub
6、请参照示例开发用户注册和登录模块。
If Session("UserName") = "" Then
welcome.Text = "您还没有登陆,请选择注册或者登陆"
Else
welcome.Text = "欢迎您:" + Session("UserName")
End If
End Sub
Sub Login(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim myname As String = __myName.Text
Dim mypass As String = __myPasswd.Text
If Not myname = "" And Not mypass = "" Then
message.Text = checkuser(myname, mypass)
If message.Text = "ok" Then
Session("UserName") = myname
Response.Redirect("default.aspx")
End If
Else
message.Text = "请填写完整的信息"
End If
End Sub
Function checkuser(ByVal n As String, ByVal p As String) As String Dim conn As New
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("myuser.mdb"))
Dim strSql As String = "select * from myusers where username='" + n + "' and userpasswd='" + p + "'"
conn.Open()
Dim cmd As New OleDbCommand(strSql, conn)
Dim dr As OleDbDataReader = cmd.ExecuteReader()
If dr.Read() Then
Return "ok"
Else
Return "信息出错,请确认"
End If
conn.Close()
End Function
Sub reg(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim myname As String = _myName.Text
Dim mypass As String = _myPasswd.Text
If Not myname = "" And Not mypass = "" Then
message.Text = saveuser(myname, mypass)
If message.Text = "ok" Then
Session("UserName") = myname
Response.Redirect("default.aspx")
End If
Else
message.Text = "请填写完整的信息"
End If
End Sub
Function saveuser(ByVal n As String, ByVal p As String) As String Dim conn As New
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("myuser.mdb"))
Dim strSql As String = "insert into myusers(username,userpasswd) values ('" + n + "','" + p + "')"
conn.Open()
Dim cmd As New OleDbCommand(strSql, conn)
Try
cmd.ExecuteNonQuery()
Return "ok"
Catch ex As Exception
Return "注册出错,请联系管理员" + ex.ToString
End Try
conn.Close()
End Function
第七章深入进行数据库编程P235
7、请利用数据库在首页开发一个计数器。
Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) '在此处放置初始化页的用户代码
If Page.IsPostBack = False Then
'链接数据库读取并更新数据()
Dim conn As New
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("log.mdb"))
Dim strsql As String
strsql = "select * from info"
Dim cmd As New OleDbCommand(strsql, conn)
conn.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader()
dr.Read()
message.Text = dr.Item("visitednumber")
conn.Close()
'strsql = "update info(visitednumber) values('" + (message.Text + 1).ToString + "')"
strsql = "update info set visitednumber = " + (message.Text + 1).ToString '+ "where id=1"
cmd = New OleDbCommand(strsql, conn)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
End Ifa
End Sub
第八章文件及文件夹操作P257
8、请开发一个故事接龙网页
Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Dim myfile As String = Server.MapPath("story.txt")
Dim sw As StreamWriter
Dim sr As StreamReader
If File.Exists(myfile) = False Then
sw = New StreamWriter(myfile, False, Encoding.Default)
sw.Close()
story.Text = "故事就从你开始..."
Else
sr = New StreamReader(myfile, Encoding.Default)
story.Text = sr.ReadToEnd()
sr.Close()
End If
End Sub
Sub AddTheStory(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Dim addwhat As String
addwhat = "
" + addstory.Text
Dim myfile As String = Server.MapPath("story.txt")
Dim sw As New StreamWriter(myfile, True, Encoding.Default)
sw.Write(addwhat)
addstory.Text = ""
sw.Close()
Response.Redirect("1.aspx")
End Sub
8、请在自己的个人主页首页上添加计数器。
Sub Page_Load(Sender As Object, E As EventArgs)
Dim visitNumber As Long '定义计数器变量
Dim myfile As String=Server.Mappath("counter2.txt") '定义文件路径变量
Dim sw As StreamWriter '声明StreamWriter对象变量
Dim sr As StreamReader '声明StreamReader对象变量
If File.Exists(myfile)=False Then
'如果该文件不存在,就建立文件,并写入1。
sw=New StreamWriter(myfile,False,Encoding.Default)
sw.Writeline("1") '写入1
sw.Close
message.Text="您是第1位访客"
Else
'读取文本文件
sr=New StreamReader(myfile,Encoding.Default)
visitNumber=CLng(sr.ReadLine()) '读取1行,并转化成长整型
sr.Close
'写入文本文件
sw=New StreamWriter(myfile,False,Encoding.Default)
visitNumber=visitNumber+1 '将总数加1
sw.Writeline(visitNumber.Tostring()) '写入1行,覆盖原有数据
sw.Close
End IF
message.Text="您是第" & visitNumber &"位访客"
End Sub
目录
11 显示欢迎信息15 显示来访信息
22 常量作用域27 根据分数给出不同的提示
信息
36 计算从1到100的平方
和
42 求a到b的平方和
44 产生随机数示例47 创建一个简单的类
48 使用property创建属
性
49 类的继承
51 重写方法52 共享属性53 构造函数61 错误处理
65 控件的属性、事件、和
方法示例
71 填写个人信息
73 文件上传示例80 填写个人信息83 广告信息文件83 广告控件示例
84 日历控件示例88 验证控件综合示例
91 用户控件示例92 调用用户控件93 用户控件示例94 调用用户控件
95 autopostback属性示
例
96 数据绑定示例
96 动态产生控件97 对控件应用样式101 ispostback示例103 准备传送信息104 显示得到的信息106 显示来访者IP
107 输出客户端浏览器的
一些特性
109 利用write方法输出信息
111
利用
response.redirect重
定向至另一个页面
115
显示客户是第几次光临本
站
118 存入session信息118 读取session信息120 存储人名信息到数组120 读取session数组信息
123 框架网页主文件123 保存发言信息
124 读取发言信息127 显示HTML语句128 显示文件的物理路径130 重定向到新的文件
130 显示信息133 发送email示例158 显示数据库的记录160 插入记录161 更新记录162 删除记录
164 利用datagrid控件显
示数据库的记录
166
利用datagrid控件显示数
据库的记录
167 插入记录170 更新记录
173 删除记录175 index首页综合示例179 add插入记录页面185 分页显示数据
186 对数据进行排序188 自己定制列190 链接到详细页192 详细页面
194 自定义列198 利用datagrid控件查询记
录
200 选择记录示例203 更新和删除记录示例
207 利用repeater控件查
询记录
209
利用repeater控件选择记
录
212 使用参数的SQL语句215 对多个表进行删除操作
218 存取SQL Server 数据
库
220
手工建立只有一个表的
dataset对象
239 显示文件及文件夹信
息
241 文件的复制、移动和删除
243 显示指定文件夹下的
子文件夹和子文件名
称
247 新建和写入文本文件
249 计数器示例254 文件管理器首页
编程一 1.请编写代码,在页面上显示如下图形。注意:只要写出主要代码即可 ********** ********* ******** ******* ****** ***** **** *** ** * 答案:<% Dim I,J For I=10 To 1 Step -1 For J=1 To I Response.Write "*" Next Response.Write "
" Next %> 2.利用Recodset对象也可以插入记录,现在针对图1所示的数据表,利用插入一条记录:其中网站名称为“搜狐”,网站地址为“https://www.doczj.com/doc/4b3568035.html,”,网站简介为“门户网站”,提交日期为当天。 注意:只给出主要代码即可,程序的开头部分已经给出。 <% Dim db, strConn strConn="Dbq=" & Server.Mappath("address.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}" Set db=Server.CreateObject("ADODB.Connection") 答:<% Dim db, strConn strConn="Dbq=" & Server.Mappath("address.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}" Set db=Server.CreateObject("ADODB.Connection") '建立Recordset对象 Set rs=Server.CreateObject("ADODB.Recordset") strSql ="Select * From link" rs.Open strSql,db,0,2 '添加记录
第一章 1.填空题 (1).NET Framework主要包括公共语言运行库CLR和类库。 (2)https://www.doczj.com/doc/4b3568035.html,网站在编译时,首先将语言代码编译成微软中间语言MSIL。(3)一台IIS Web服务器IP地址为210.78.60.19,网站端口号为8000,则要访问虚拟目录xxxy中default.aspx的URL为 http://210.78.60.19.8000/xxxy/default.aspx。 (4)可以通过复制网站同步网站上的一个文件。 2.是非题 (1)托管代码是以CLR为基础的代码。(√) (2)https://www.doczj.com/doc/4b3568035.html,3.5仍使用https://www.doczj.com/doc/4b3568035.html,2.0引擎。(√) (3).NET Framework 3.0是.NET Framework 3.5的一部分。(√) (4)https://www.doczj.com/doc/4b3568035.html, 3.5是边解释边执行的。(×) (5)在Visual Studio 2008环境中开发网站必须安装IIS。(×) 3.选择题 (1).NET Framwork3.5不包括(A) A. .NET Framework 1.1 B. .NET Framework 2.0 C. LINQ D. https://www.doczj.com/doc/4b3568035.html, AJAX (2)下面(D)网站在建立时要求安装Microsoft FrontPage服务器扩展。 文件系统 B. 本地IIS C. FTP站点 D.远程站点 (3)发布网站后不可能存在的文件夹是(B) A.App_Data B.App_Code C.App_Themes D.bin 第二章 1.填空题 (1)Visual Studio 2008 默认建立的XHIML文件类型是Transitional。 (2)利用XHTML建立一个链接到jxst@https://www.doczj.com/doc/4b3568035.html,邮箱的元素是……。 (3)存放Web窗体页C#代码的模型有单文件页模型和代码隐藏页模型。(4)单文件页模型中,C#代码必须包含于之间。 (5)外部样式表通过元素链接到网页。 (6)XML主要用于传输和存储数据。 2.是非题 (1)XHTML是HTML的子集。(×) (2)XHTML中每个元素都有结束标记。(√) (3).htm文件不需要编译,直接从Web服务器下载到浏览器执即可。(√)(4)基于类的样式在定义是要加前缀“#”。(×) (5)JavaScript代码必须包含在