《NET实例开发》实验指导书.docx
- 文档编号:3565056
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:75
- 大小:3.08MB
《NET实例开发》实验指导书.docx
《《NET实例开发》实验指导书.docx》由会员分享,可在线阅读,更多相关《《NET实例开发》实验指导书.docx(75页珍藏版)》请在冰豆网上搜索。
《NET实例开发》实验指导书
《.NET实例开发》
实验指导书
山东建筑大学计算机学院软件教研室
2013年2月
实验1.NET三层架构初级编程
一.实验目的
1.熟悉和掌握ASP.NET网站开发中的操作步骤。
2.熟悉和掌握基于.NET最简三层架构的网站的开发方法和步骤。
二.实验内容
设计并实现一个基于最简三层架构的标题为“C#学习网”的网站的登录页面login.aspx,效果图如1-1所示,若输入正确的用户名和密码,单击“登录”按钮,则提示“登录失败,无此用户名或密码不正确!
”,若输入不正确的用户名和密码,单击“登录”按钮,则提示“登录成功!
”。
图1-1登录页面效果
3.实验步骤
1.剪切图片素材
在设计页面之前,首先根据效果图分析得到框架结构代码,并利用PhotoShop工具,剪切下需要的图片,并保存(本实验已提供了这些图片)。
2.创建ASP.NET网站。
启动VisualStudio2008,点击“文件”菜单中的子菜单“新建”,在级联菜单中点击“ASP.NET网站”,如图1-2,在的“新建网站”对话框中,默认选择“ASP.NET网站”模板,文件默认选择“文件系统”,语言选择“VisualC#”,然后单击“浏览”按钮打开“选择位置”对话框为网站选择一个合适的位置,单击“打开”按钮,返回“新建网站”对话框。
在刚刚选择的文件路径后面输入网站名“CSharpStudy”,然后单击“确定”按钮,这样就完成新建了一个名为“CSharpStudy”的ASP.NET网站,该网站的有一个项目,项目名也默认为“CSharpStudy”,不可修改。
3.添加图片素材。
右单击项目名“CSharpStudy”,在打开的快捷菜单中选择“新建文件夹”选项,添加一个名为“images”的文件夹,通过添加现有项的方法将本实验提供的图片素材添加到网站的images文件中。
图1-2新建网站
4.创建数据库和数据库表
完成“CSharpStudy”中的登录页面,只用到了一个表——userlogin表,用于保存用户的基本信息,下面给出创建ServerSQL2005Express数据库“webdevelop”和数据库表userlogin表的步骤。
首先在“CSharpStudy”网站中,右单击App_Data文件夹,打开快捷菜单,单击“添加新项”,打开“添加新项”对话框,如图1-3所示,默认选择“SQLServer数据库”模板,在名称输入框中输入“webdevelop.mdf”,单击“添加”按钮,完成ServerSQL2005Express数据库“webdevelop”的创建。
双击“webdevelop.mdf”,如图1-4所示,在左侧的“服务器管理器”中打开数据库“webdevelop”,右单击“webdevelop.mdf”中的“表”节点,单击“添加新表”选项,然后按照图1-5的表结构创建userlogin表。
图1-3App_Data文件夹中的添加新项对话框
图1-4服务器管理器中的“webdevelop“数据库
图1-5userlogin表结构
5.在配置文件中添加数据库连接字符串
在Web.Config文件中的
AttachDbFilename=|DataDirectory|webdevelop.mdf;IntegratedSecurity=True; UserInstance=True;"/> 6.在数据库中创建用于验证用户的存储过程 双击“webdevelop.mdf”,如图1-4所示,在左侧的“服务器管理器”中打开数据库“webdevelop”,右单击“webdevelop.mdf”中的“存储过程”节点,打开快捷菜单,单击“添加新存储过程”选项,在打开的编辑器中创建存储过程Proc_UserExists,如下: CREATEprocProc_UserExists ( @UserNamenvarchar(30), @UserPwdvarchar(20) ) as ifexists(select*fromuserloginwhereusername=@UserNameanduserpwd=@UserPwd) return100 else return-100 7.添加App_Code文件夹,创建相关类文件 图1-6所示,右单击解决方案“CSharpStudy”的项目名“CSharpStudy”,打开快捷菜单,单击“添加ASP.NET文件夹”菜单项,在级联菜单中单击选择“App_Code”菜单项,从而添加存放项目业务逻辑层类文件的文件夹App_Code。 在Web页面后窗口文件中调用App_Code文件夹中的类文件中的类,不必先添加对其命名空间的引用,直接使用即可,因为系统会自动到App_Code文件夹中搜索并调用该类。 图1-6创建App_Code文件夹 右单击App_Code文件夹,打开快捷菜单,选择“添加新项”选项,打开如图1-7所示的“添加新项”对话框,单击选择“类”模板,然后在名称输入框中输入类文件名DBClass.cs,单击“添加”按钮,完成类文件DBClass.cs的创建,使用同样的方法完成类文件UserInfoClass.cs的添加。 图1-7App_Code文件夹中的“添加新项”对话框 在DBClass.cs中,在自动生成的代码的基础上,首先添加对命名空间System.Data.SqlClient的引用: usingSystem.Data.SqlClient; 然后,在DBClass类中定义如下所示的GetConnection()方法,用于创建并返回连接到数据库“webdevelop”的Sqlconnection对象,代码如下: publicSqlConnectionGetConnection() { StringmyStr=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnectionmyConn=newSqlConnection(myStr); returnmyConn; } 在UserInfoClass.cs中,在自动生成的代码的基础上,首先添加对命名空间System.Data.SqlClient的引用: usingSystem.Data.SqlClient; 然后,在UserInfoClass类中定义一个DBClass类型的公有类字段dbObj,用于实现在UserInfoClass类中通过调用DBClass类的GetConnection()方法获取连接数据库“webdevelop”的Sqlconnection对象,代码如下: DBClassdbObj=newDBClass(); 然后,在UserInfoClass类中定义UserExists()方法,用于验证用户名和密码的合法性,该方法是通过前面步骤中创建的存储过程Proc_UserExists来实现对数据库“webdevelop”的相关操作的,UserExists()方法的代码如下: publicintUserExists(stringP_Str_Name,stringP_Str_Password) { SqlConnectionmyConn=dbObj.GetConnection(); SqlCommandmyCmd=newSqlCommand("Proc_UserExists",myConn); myCmd.CommandType=CommandType.StoredProcedure; //添加参数 SqlParameterName=newSqlParameter("@UserName",SqlDbType.NVarChar,30); Name.Value=P_Str_Name; myCmd.Parameters.Add(Name); //添加参数 SqlParameterPassword=newSqlParameter("@UserPwd",SqlDbType.VarChar,20); Password.Value=P_Str_Password; myCmd.Parameters.Add(Password); //添加参数 SqlParameterreturnValue=myCmd.Parameters.Add("returnValue",SqlDbType.Int,4); returnValue.Direction=ParameterDirection.ReturnValue; //执行过程 myConn.Open(); try { myCmd.ExecuteNonQuery(); } catch(Exceptionex) { throw(ex); } finally { myCmd.Dispose(); myConn.Close(); } intP_Int_returnValue=Convert.ToInt32(returnValue.Value.ToString()); returnP_Int_returnValue; } 8.创建登录页面 (1)在【解决方案资源管理器】窗格中右击选择【添加新项】命令或者选择【项目】|【添加新项】命令,打开【添加新项】对话框。 选择“Web窗体“,并取名为“login.aspx”。 按照图1-1所示的效果图,将用于用户名输入的TextBox取名为“TextBoxUsername”,用于密码输入的TextBox取名为“TextBoxPassword”,“登录”按钮取名为“ButtonLogin”,“注册”按钮取名为“ButtonRegister”。 (2)编写“ButtonLogin”按钮的Click事件代码,如下: protectedvoidButtonLogin_Click(objectsender,EventArgse) { UserInfoClassucObj=newUserInfoClass(); stringstrName=TextBoxUsername.Text.Trim(); stringstrPwd=TextBoxPassword.Text.Trim(); intP_Int_IsExists=ucObj.UserExists(strName,strPwd); if(P_Int_IsExists==100) { this.ClientScript.RegisterStartupScript(this.GetType(),"",""); } else { this.ClientScript.RegisterStartupScript(this.GetType(),"",""); } } 9.调试与运行 右单击“login.cs”文件,在打开的快捷菜单中,选择“在浏览器中查看”菜单项,运行登录页面,若有错,请按照编译器指出的错误的顺序逐个排错,依次解决各种错误问题。 4.实验题 以上创建的ASP.NET网站“CSharpStudy”的基础上,添加一个新表“news”用于保存新闻记录,对login.aspx登录页面做必要修改后,然后继续基于最简三层架构,完成“CSharpStudy”网站的其它功能页面,其它各页面的效果图如图1-8、1-9、1-10、1-11、1-12、1-13、1-14所示。 大体上的功能是: (1)首次访问网站首页index.aspx页(图1-10)时,该页面判断是否“已登录”,若未登录,则自动跳转到login.aspx页(图1-1),若未输入正确的用户名和密码,则提示“登录失败! 用户名或密码不正确! ”,若输入正确的用户名和密码,单击“登录”按钮,则跳转到index.aspx;若单击“注册”按钮,则跳转到Register.aspx(图1-8),若注册成功,就跳转到RegisterSuccess.aspx(图1-9)注册成功页面,单击该页上的“确定”按钮,就跳转到index.aspx页面。 (2)在index.aspx页面,单击“新闻管理”,跳转到news.aspx(图1-11)。 在该页面单击“单击此处发布新闻”,跳转到发布新闻页面modifyNews.aspx(图1-12),输入完毕后,单击“确定”按钮,回到news.aspx页面;在该页面单击某条新闻记录的“编辑”按钮,跳转到修改页面modifyNews.aspx(图1-12),修改完毕后,单击“确定”按钮,回到news.aspx。 (3)在index.aspx页面,单击“新闻浏览”,跳转到allnews.aspx(图1-13),单击某一条新闻记录,跳转到新闻内容页面NewsContent.aspx(图1-14)。 图1-8注册页面效果 图1-9登录成功页面效果 图1-10网站首页效果 图1-11新闻管理页面效果 图1-12新闻发布(或修改)页面效果 图1-13新闻浏览页面效果 图1-14新闻内容页面效果 5.实验体会: 实验2.NET三层架构高级编程 (1) 一.实验目的 1.熟悉和掌握ASP.NET网站开发中的操作步骤。 2.熟悉和掌握基于.NET简单三层架构的网站的开发方法和步骤。 二.实验内容 设计并实现一个基于简单三层架构的标题为“C#学习网”的网站的登录页面login.aspx,效果图如2-1所示(与图1-1相同),若输入正确的用户名和密码,单击“登录”按钮,则提示“登录失败,无此用户名或密码不正确! ”,若输入不正确的用户名和密码,单击“登录”按钮,则提示“登录成功! ”。 图2-1登录页面效果 三.实验步骤 1.剪切并保存图片素材 在设计页面之前,首先根据效果图分析得到框架结构代码,并利用PhotoShop工具,剪切下需要的图片,并保存(也可以直接使用实验1中已准备好的图片素材)。 2.创建ASP.NETWeb应用程序 启动VisualStudio2008,单击主菜单项“新建”,在下拉菜单中单击“项目”菜单项,打开“新建项目”对话框(如图2-2所示),先单击选择左侧项目类型中的“VisualC#”节点,然后选择右侧模板列表框中的“ASP.NETWeb应用程序”模板,在“名称”输入框输入“Web”,在解决方案输入框中输入“CSharpStudy”,单击“浏览”按钮,在打开的“选择位置”对话框中选择本网站将要保存的位置,最后单击“确定”按钮,完成名为“CSharpStudy”的ASP.NETWeb应用程序的创建。 3.添加图片素材 在创建的Web项目新建一个名为images的文件夹,通过添加现有项的方法将步骤中已准备好的图片素材添加到网站的images文件中。 图2-2新建项目对话框 4.添加类库项目MODEL、DBHelper、DAL和BLL 如图2-3所示,右单击“CSharpStudy”解决方案,打开快捷菜单,选择“添加”菜单项,在级联菜单中选择“新建项目”,打开“添加新项目”对话框(如图2-4所示),先单击左侧的“项目类型”视图中的“VisualC#”节点,然后在右侧的“模板”列表中选择“类库”模板,再在名称输入框中输入类库项目名称“MODEL”,位置输入框中的内容默认即可。 最后单击“确定”按钮,就此完成类库项目“MODEL”的项目的创建,在“解决方案资源管理器”中双击“MODEL”项目,可看到该项目中有自动生成的类文件Class1.cs,将其删除。 使用同上的方法,再分别添加名为“DBHelp”的类库项目、名为“DAL”的类库项目和名为“BLL”的类库项目,并分别删除各类库项目自动生成的类文件Class1.cs。 图2-3添加新项目 图2-4添加新项目对话框 5.创建数据库和数据库表 按照实验1中所述的方法在Web项目中创建ServerSQL2005Express数据库“webdevelop”和数据库表userlogin表。 6.在配置文件中添加数据库连接字符串 在Web项目的Web.Config文件中的 AttachDbFilename=|DataDirectory|webdevelop.mdf; IntegratedSecurity=True;UserInstance=True;"/> 注: 7.在各项目中添加各个类文件 右单击“MODEL”项目,在打开的快捷菜单中,单击“添加”菜单项,在级联菜单中单击选择“新建项”菜单项,打开“添加新项”对话框(如图2-5所示),先单击左侧的“类别”视图中的“代码”节点,再在右侧的“模板”列表框中单击选择“类”模板,再在名称输入框中输入类库文件名“users.cs”,最后单击“添加”按钮,完成MODEL项目中users.cs的创建。 使用同上的方法,在“DBHelper”项目中添加类文件SQLDBHelper.cs,在“DAL”项目中添加类文件usersDAL.cs,在“BLL”项目中添加类文件usersBLL.cs。 图2-5添加新项对话框 8.为DAL项目、BLL项目和Web项目添加所需的引用 为了使DAL项目可以访问到MODEL类库项目和DBHelper类库项目中的类,需要为DAL项目添加对MODEL项目和DBHelper项目的引用,步骤如下: 右单击DAL项目中的“引用”文件夹,选择“添加引用”菜单项,打开如图2-6所示的“添加引用”对话框,单击“项目”选项卡,单击选择“DBHelper”项目,再单击“确定”按钮,完成对DBHelper项目的引用(等同于对DBHelper项目编译生成的组件(dll)的引用,该dll组件编译后自动生成在项目文件夹下的子文件夹bin\Debug中)。 使用同上的方法继续分别完成DAL项目对MODEL项目的引用、Web项目对BLL项目和MODEL项目的引用以及BLL项目对DAL项目和MODEL项目的引用。 图2-6添加引用对话框 下面我们需要强调几个相关名称的区别和联系。 这几个名称分别为程序集名称、类库项目名称和默认命名空间名称。 被引用的类库项目是以程序集的形式(即DLL文件的组件形式)被其他项目引用的,程序集名称是就是该程序集的DLL文件名。 默认命名空间名称是类库中的所有类所属的命名空间的名称,在程序代码中通常使用using关键字来引用该命名空间(或者说,两者必须一致)。 创建了一个新的类库项目后,其对应的程序集名称默认就是类库项目的名称,该类库项目中的所有类的默认命名空间名称也默认为类库项目的名称,若后来修改了该类库项目的名称,则该类库项目的命名空间的名称和程序集不会自动修改,这时就必须程序员自己修改。 下面以DBHelper类库项目为例,说明修改的方法。 首先右单击项目名DBHelper,打开快捷菜单,单击选择“属性”蔡单项,打开“项目属性”对话框(如图2-7所示),可以在该对话框中可修改该类库项目的程序集名称和默认命名空间。 图2-7项目的属性对话框 9.编写类文件users.cs的内容 双击打开MODEL项目中的users.cs文件,先将自动生成的users类的访问修饰符改为public,添加代码,最后users类的完整代码如下: publicclassusers { privatestringusername; /// ///用户名 /// publicstringUserName { get{returnusername;} set{username=value;} } privatestringuserpwd; /// ///密码 /// publicstringUserPwd { get{returnuserpwd;} set{userpwd=value;} } privatestringsex; /// ///性别 /// publicstringSex { get{returnsex;} set{sex=value;} } privateDateTimelogintime; /// ///登录时间 /// /// publicDateTimeLoginTime { get{returnlogintime;} set{logintime=value;} } } 10.编写类文件SQLDBHelper.cs的内容 双击打开DBHelper项目中的SQLDBHelper.cs文件,先在文件开始部分添加如下代码以添加对命名空间的引用: usingSystem.Collections; usingSystem.Data; usingSystem.Data.SqlClient; usingSystem.Configuration; 请注意,在下面的代码中, System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString()和System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString()均可以通过读取web.config文件中的AppSetting配置节中键名为“ConnectionString”的value值(即数据库连接字符串),但前者要使用System.Configuration命名空间中的Configur
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NET实例开发 NET 实例 开发 实验 指导书