实验1 公共类和数据库访问类的设计_第1页
实验1 公共类和数据库访问类的设计_第2页
实验1 公共类和数据库访问类的设计_第3页
实验1 公共类和数据库访问类的设计_第4页
实验1 公共类和数据库访问类的设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ASP.NET应用程序设计实验要求本课程实验内容由基本模块实验和综合实验两大部分组成,基本模块实验是根据课程进度安排的用以巩固所学内容的实验部分,综合实验是指将基本实验中完成的模块进行组合而形成的一个比较完整的Web应用程序系统。要求同学们首先建立一个ASP.NET的空网站,然后向网站中逐步添加相应的文件夹和文件。实验一公共类和数据库访问类的设计一、实验目的熟悉ASP.NET应用程序的创建及文件结构,了解ASP.NET几个专用的文件夹的作用。设计系统中使用的公共类,复习有关C#中类的设计的知识。设计系统中使用数据库访问层中的相关类,复习有关ADO.NET的基本知识。二、实验要求通过本实验了解各种基本服务器控件的应用方法。练习使用基本服务器控件设计程序界面。三、相关知识点MD5MD5的全称是Message-DigestAlgorithm5,在90年代初由MIT的计算机科学实验室和RSADataSecurityInc发明,经MD2、MD3和MD4发展而来。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法。换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。DateTime结构(上学期已经学习过,相信同学们应该熟悉)ADO.NET中的基本对象模型:包括Connection、Command、DataAdapter、DataSet、DataTable、DataRow等。四、实验内容设计一个公共类PublicClass用以实现系统中常用的功能,比如对用户密码进行加密,根据当前时间产生上传文件的文件名等通用功能。参考步骤和代码如下:

SHUJ(1)在创建的网站上点击右键——添加新项——类,输入类名“Pu根据提示系统自动创建App_Code文件夹(理解该文件夹的(2)设计类的成员如下:•静态方法:getMd5Hash()参数:要加密的字符串(string)返回值:加密后的字符串(string)参考代码:(需要导入命名空间System.Security.Cryptography)publicstaticstringgetMd5Hash(stringinput){〃创建MD5类的实例MD5md5Hasher=MD5.Create();〃获取要加密的字段,并转化为Byte[]数组byte[]dataEncrypt=System.Text.Encoding.Unicode.GetBytes(input);〃加密Byte[]数组byte[]resultEncrypt=md5Hasher.ComputeHash(dataEncrypt);〃将加密后的数组转化为字段(普通加密)StringBuildersBuilder=newStringBuilder();for(inti=0;i<dataEncrypt.Length;i++)sBuilder.Append(dataEncrypt[i].ToString("x2"));returnsBuilder.ToString();}**说明:该方法常用于对用户输入的密码信息进行加密,如将用户的注册信息保存到数据库中之前调用该方法加密后存入数据库中,实现信息的安全。•静态方法:getFilename()参数:无返回值:根据时间构造的一个字符串作为上传文件名称根据当前时间的年、月、日、时、分、秒构造一个文件名,其中年含4位数,月、日、时、分、秒都采用2位数字表示,如果小于10则前面添加“0”。(这部分代码由同学自己完成,相信你可以的)**说明:该方法用于从客户端向服务器端上传文件时构造文件名,防止重复。如果,为了增加不重复的几率,还可以在上述信息后面再增加一个随机数,如增加一个4位的随机数,则可以使用Random函数的Next(1000,9999)方法产生,附加在上述信息后面,以进一步减少重复的可能。同学们还可以在该类中添加项目中需要的其他的方法,以实现相应的功能。(3)设计一个Web窗体TestMD5.aspx,对上述类的加密功能进行验证,在文本框中输入一个字符串,点击“加密”按钮后输出加密后的字符串。输出可通过

,在Label控件或使用Response.Write方法。再添加一个TestGetFileName.aspx,对上述类的获取文件名的功能进行验证,添设置其Text属性为“产生文件名称”,添加一个Label标签。当点击Label中输入随机产生的文件名称。,在设计一个访问数据库的类Database,用以实现对数据库的访问。(在C#中同学们有所接触ADO.NET,试试看)。Database类中应至少包含以下成员:(1)字段成员:string型字段connstring,描述连接数据库字符串;SqlConnection型字段conn,描述连接SQLServer数据库的对象(2)公有属性成员:ConnString用以控制对私有字段connstring的读写访问。公有属性Conn用以控制对私有字段conn的读写访问。(3)构造函数:用以对字段成员进行初始化。如给connstring赋值:"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|BBS.mdf;IntegratedSecurity=True;UserInstance=True”其中的BBS.mdf是数据库文件,通过在项目中添加“本地数据库”完成(置于App_Data文件夹中)(4)定义方法Open()用以将数据库连接对象打开。参考代码如下:publicvoidOpen()if(Conn==null)Conn=newSqlConnection(ConnString);if(Conn.State.Equals(ConnectionState.Closed)){Conn.ConnectionString=ConnString;Conn.Open();}}(5)定义方法Close}(5)publicvoidClose(){if(Conn!=null){Conn.Close();Conn.Dispose();}

(6)(6)定义方法ExecuteSQL(),用于执行Update、Insert、De〜〜事回该操作受影响的行数,操作失败则返回-1,参考代码如下:publicintExecuteSQL(stringsqlString)intcount=-1;this.Open();try{SqlCommandcmd=newSqlCommand(sqlString,Conn);count=cmd.ExecuteNonQuery();}catch{count=-1;}finally{this.Close();}returncount;}(7)定义方法GetDataSet(),用以根据指定的select语句返回一个数据集对象DataSet。参考代码如下:publicDataSetGetDataSet(stringsqlString){this.Open();SqlDataAdaptersda=newSqlDataAdapter(sqlString,Conn);DataSetds=newDataSet();sda.Fill(ds);this.Close();returnds;}(8)定义方法GetDataTable(),用以根据指定的select语句返回一个数据表对象DataTable。参考代码如下:

publicDataTableGetDataTable(stringsqlString){this.Open();SqlDataAdaptersda=newSqlDataAdapter(sqlString,Conn);DataSetds=newDataSet();sda.Fill(ds);this.Close();DataTabledt=ds.Tables[0];returndt;}(9)(9)定义方法publicDataTableGetDataTable(stringsqlString){}(9)publicDataRowGetDataRow(stringsqlString){this.Open();DataSetds=GetDataSet(sqlString);ds.CaseSensitive=false;if(ds.Tables[0].Rows.Cou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论