欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年ASP实验五简单聊天室设计.docx

    • 资源ID:50006351       资源大小:333.62KB        全文页数:19页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年ASP实验五简单聊天室设计.docx

    名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -ASP.NET程序设计实学院:临沂高校专业:软件工程报告人:学号:班级:验 报 告细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 16 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -试验五 简洁谈天室设计一、目的与要求1、把握程序开发流程;2、明白 Web应用程序的规律结构;3、把握三层架构二、试验仪器Windows操作系统, Microsoft Visual Studio .NET 2022;三、试验内容1. 设计与实现一个简易谈天室;四、试验过程及结果(1)设计数据库第一,多用户谈天室具有用户表User ,其字段如表 20.1 所示;User (用户)表字段名数据类型备注UserName varchar50 not null 用户名Password varchar50not_null 密码记录发言信息的表Message的字段如表 20.2 所示;Message (发言信息)表字段名数据类型备注<font color>,而UserName varchar50 not null 发言者CreateTime varchar50 not null 发言时间Content Text 发言全文Color varchar50 not null 文字颜色Emotion varchar50 not null 用户表情其中, color 属性的取值可能为red 、blue 、green ,它们能够直接赋值给不是简洁的储备汉字,这样可以便利显示;本例中, emotion 储备的是文字信息,如微笑地、伤心地等;读者可以很简洁地将其转变为图片信息,实现方式是第一设计一些表情图片,然后将其图片名储备在 时依据其值构造 <img>标签即可;(2) 实现数据库emotion 属性中,在显示下面给出数据库实现的SQL命令,也可以通过SQL Server 企业治理器创建: 第 2 页,共 16 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -(1)创建 User 表CREATE TABLE dbo.User UserName varchar 50 COLLATE Chinese_PRC_CI_AS NOT NULL , Password varchar 50 COLLATE Chinese_PRC_CI_AS NOT NULL ON PRIMARY (2)创建 Message表:CREATE TABLE dbo.Message UserName varchar 50 COLLATE Chinese_PRC_CI_AS NOT NULL , CreateTime varchar 50 COLLATE Chinese_PRC_CI_AS NULL , Content text COLLATE Chinese_PRC_CI_AS NULL , Color varchar 50 COLLATE Chinese_PRC_CI_AS NULL , Emotion varchar 50 COLLATE Chinese_PRC_CI_AS NULL ON PRIMARY TEXTIMAGE_ON PRIMARY 3 数据拜访层本系统只包括一个类Database ;这个类的功能是数据拜访层完成全部与数据库交互的工作,向数据库提交SQL语句,并返回相应的操作结果;(1)配置数据库连接本例中, 在Web.config 文件中指定了数据库连接字符串配置信息,如下代码:1. <appSettings> 2. <add 3. key="DBConnectionString" 在Web.config 文件中添加4. value="server=local;database=MyChatRoom;User Id=sa;pwd=sa" 5. /> 6. </appSettings> 用户需要依据自己的配置,修改 value 中各个连接属性的值;(2) Database 类成员一览把Database 类放在 MyChatRoom.DataAcceessLayer 空间下,其类图如图20.5 所示; 第 3 页,共 16 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -图 20.5 数据库类 Database的类图成员说明如表 20.3 所示表 20.3 Database 类的成员说明属性 / 方法 功能说明Connection 爱护变量,数据库连接 SqlConnection对象ConnectionString 爱护变量,数据库连接串Open 连接数据库Close 关闭数据库连接Dispose 释放数据库连接资源ExecuteSQL 执行一个非查询(SELECT)类型的 SQL 命令GetDataRow 依据输入 SQL命令,猎取一个 DataRow对象GetDataSet 依据输入 SQL命令,猎取一个 DataSet对象(3)实现 Database 类下面分别介绍 Database 类中各个方法的实现;1构造函数构造函数的功能为,读取配置文件Web.config 中的连接字符串,并给予ConnectionString属性,实现如下:1. / 构造函数= 2. public Database 3. 4. ConnectionString ConfigurationSettings.AppSettings"DBConnectionString" 5. 类 的 的 AppSettings静 态 属 性 , 获 取 Web.config中 使 用这 里 使 用 ConfigurationSettings<appSettings>元素的配置信息;ConfigurationSettings类供应配置文件的拜访信息;2析构函数构造函数的功能为,关闭数据库连接,并释放连接数据库所使用的资源;实现如下:细心整理归纳 精选学习资料 1. / 析构函数,关闭连接,并释放资源 第 4 页,共 16 页 2. Database 3. 4. try 5. 6. if Connection .= null 7. Connection.Close; 8. 9. catch 10. try 11. 12. Dispose; 13. - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -14. catch 15. 10 14行使用下面介绍的Dispose 方法,释放资源;代码 49行关闭连接,3Dispose方法Database 类继承了 IDisposal 接口, 后者定义了释放资源的 Dispose 方法; 在Database 中,需要实现这个方法,以释放连接数据库所占用的系统资源(如内存等);具体地,将使用 Connection属性的 Dispose 方法,来释放这些资源,实现如下:1. / 公有方法,释放资源;2. public void Dispose 3. 4. / 确保连接被关闭5. if Connection .= null 6. 7. Connection.Dispose; 8. Connection = null; 9. 10. 4Open 方法Open方法依据 ConnectionString 属性,创建新的数据库连接对象,并给予 Connection 属性;1. / 爱护方法,打开数据库连接;2. protected void Open 3. 4. if Connection = null 5. 6. Connection = new SqlConnectionConnectionString; 7. 8. if Connection.State.EqualsConnectionState.Closed 9. 10. Connection.Open; 11. 12. 代码判定是否已经建立了连接,假如没有建立,就创建新的连接,并将其打开;5Close 方法Close 方法关闭数据库连接;1. / 公有方法,关闭数据库连接;2. public void Close 3. 4. if Connection .= null 5. Connection.Close; 6. 6ExecuteSQL 方法ExecuteSQL 方法执行非查询(即非SELECT)SQL命令,并返回执行SQL所影响的数据记录数目; 第 5 页,共 16 页 1. / 公有方法,执行Sql 语句;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -2. / <param name="SqlString">Sql语句 </param> 3. / <returns>对Update 、Insert、Delete 为影响到的行数,其他情形为-1</returns> 4. public int ExecuteSQLString SqlString 5. 6. int count = -1; 7. Open; 8. try 9. 10. SqlCommand cmd = new SqlCommandSqlString,Connection; 11. count = cmd.ExecuteNonQuery; 12. 13. catch 14. 15. count = -1; 16. 17. finally 18. 19. Close; 20. 21. return count; 22. 第7行打开数据库连接;第820行使用 try-catch-finally 语句,利用 ExecuteNonQuery 方法来执行 SQL命令;第21 行返回执行 SQL影响的记录数;7GetDataSet 方法GetDataSet 方法接受一个 SQL查询命令( SELECT语句),然后返回查询得到的数据集 DataSet ;1. / 公有方法,猎取数据,返回一个 DataSet ;2. / <param name="SqlString">Sql 语句 </param> 3. / <returns>DataSet</returns> 4. public DataSet GetDataSetString SqlString 5. 6. Open; 7. SqlDataAdapter adapter = new SqlDataAdapterSqlString,Connection; 8. DataSet dataset = new DataSet; 9. adapter.Filldataset; 10. Close; 11. return dataset; 12. 第6行打开数据库连接;第79行使用 SqlDataAdapter对象得到查询结果, 并利用其 Fill方法将查询结果放入DataSet 中;第10 行关闭数据库连接;第11 行返回查询结果集;8GetDataRow 方法GetDataRow方法接收一个SQL查询命令(SELECT语句),然后返回查询得到的一行数据对象 第 6 页,共 16 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -DataRow,很明显,这个方法适合于结果中至多只包含一个记录的查询,例如依据主键查询数据等;1. / 公有方法,猎取数据,返回一个 DataRow;2. / <param name="SqlString">Sql 语句 </param> 3. / <returns>DataRow</returns> 4. public DataRow GetDataRowString SqlString 5. 6. DataSet dataset = GetDataSetSqlString; 7. dataset.CaseSensitive = false; 8. if dataset.Tables0.Rows.Count>0 9. 10. return dataset.Tables0.Rows0; 11. 12. else 13. 14. return null; 15. 16. 第6行利用前面介绍的 GetDataSet 方法,猎取查询结果数据集;第815行试图取出结果集中第一个表中的第一行数据,就返回空( null);4 业务规律层并返回; 假如数据集中不存在任何数据,业务规律层完成谈天室的功能,具体包括用户和信息治理,分别使用 User 和Message类来实现,下面对其一一介绍;1 用户类 User 1User 类的功能用户类模拟了一个使用谈天室的用户,位于 MyCharRoom.BussinessLogicLayer空间中, 其类图如图所示;留意: User 类的实现将使用到Database类的方法,因此,在实现User 类之前,不要忘记引入数据拜访层所在的空间“MyCharRoom.DataAccessLayer ” ;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 16 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -图 20.6 User 类的类图成员说明如表20.4 所示:表 20.4 User 类的成员说明属性/ 方法功能说明UserName 字符串,用户名Password 字符串,用户密码Exist 布尔型,指示用户是否存在Add 将当前用户添加到数据库中LoadData 依据用户名,得到用户的具体信息数据2LoadData 方法LoadData 方法依据用户名参数,查询数据库,并猎取该用户的具体信息;1. / 依据参数 userName,猎取用户具体信息2. / <param name="userName"> 用户名 </param> 3. public void LoadDatastring userName 4. 5. Database db=new Database; / 实例化一个 Database 类6. 7. string sql="Select * from User where UserName = '"+userName+"'" 8. DataRow dr=db.GetDataRowsql; / 利用 Database 类的 GetDataRow方法查询数据9. 10. / 依据查询得到的数据,对成员赋值11. ifdr.=null 12. 13. this._userName=dr"UserName".ToString; 14. this._password=dr"Password".ToString; 15. this._exist=true; 16. 17. else 18. this._exist=false; 19. 第5行得到一个 Database 对象 db;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 16 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -第78行构造了查询语句,形如:Select * from User Where UserName = ZhangSan然后,利用 db的GetDataRow方法查询数据;第10 18行把查询到的数据给予 User 类的各个属性, 并标识 _exist 属性为 true ;假如没有查询到任何数据,就 _exist 属性为 false ;留意:在构造查询语句时,需要在表名 User 上添加中括号,这是由于,SQLServer 中包含名为 User 的系统表,为了与系统表加以区分,需要使用中括号;3Add 方法Add方法向数据库添加一个用户信息;1. / 向数据库添加一个用户2. / <param name="userName"> 用户名 </param> 3. / <param name="password"> 密码 </param> 4. public void Addstring userName,string password 5. 6. Database db=new Database; / 实例化一个 Database 类7. 8. string sql="Insert Into User Values " 9. +"'"+userName+"'," 10. +"'"+password+"'" 11. 12. db.ExecuteSQLsql; / 利用 Database 类的 GetDataRow方法查询用户数据13. 第6行得到一个 Database 对象 db;第8行构造了 INSERT语句,形如:Insert Into User Values UserName , Password 然后,利用 db的ExecuteSQL 方法执行命令;2 消息类 Message 1Message 类的功能Message类用户治理用户的发言信息,位于MyCharRoom.BussinessLogicLayer空间中,其类图如图20.7 所示;图 20.7 User 类的类图成员说明如表20.5 所示;表 20.5 User 类的成员说明 第 9 页,共 16 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -属性/ 方法功能说明Add 将一条留言信息,添加到数据库中10条留言,并用 DataSet返回LoadTop10 静态方法,查询数据库中最近的2实现 Add 方法Add方法向数据库添加一个留言信息,具体内容包括留言用户名、时间、内容、字体颜色,以及表情信息;1. / 向数据库中添加一条留言信息content,string 2. / <param name="userName">用户名 </param> 3. / <param name="createTime">留言时间 </param> 4. / <param name="content">留言内容 </param> 5. / <param name="color">颜色 </param> 6. / <param name="emotion">表情 </param> 7. public void Addstring userName,string createTime,string color,string emotion 8. Database db=new Database; / 实例化一个 Database 类9. 10. 11. string sql="Insert Into Message Values " 12. +"'"+userName+"'," 13. +"'"+createTime+"'," 14. +"'"+content+"'," 15. +"'"+color+"'," 16. +"'"+emotion+"'" 17. 18. db.ExecuteSQLsql; / 利用 Database 类的 GetDataRow方法查询用户数据19. 第6行得到一个 Database 对象 db;第8行构造了 INSERT语句,形如:Insert Into Message Values UserName , 9:12:23 , 留言信息 , red , 微笑着 然后,利用 db的ExecuteSQL 方法执行命令;3LoadTop10 方法LoadTop10方法猎取谈天室用户最近发表的 10条发言,并用一个 DataSet 数据集返回;1. / 猎取大事最近的 10条发言2. public static DataSet LoadTop10 3. 4. Database db=new Database; / 实例化一个 Database 类5. 6. string sql="Select top 10 * from Message order by CreateTime desc" 7. DataSet ds=db.GetDataSetsql;/ 用Database 类的 GetDataSet 查询最近的 10 条发言8. 9. return ds; 10. 第4行得到一个 Database 对象 db;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 16 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -第6行构造了 INSERT语句,形如:Select top 10 * from Message Order By CreateTime Desc 然后,利用 db的GetDataSet 方法得到查询结果数据集,并返回;5 页面显示层页面显示层是最终出现在用户浏览器上的系统功能,主要包括对规律层的调用,动态显示数据,以及美工两部分工作;此处着重介绍前者;本例中,所包含的页面有:(1)用户登录页面 Login.aspx;(2)用户发言页面 Speak.aspx ;(3)浏览信息页面 ShowMessage.aspx ;为了便于使用,需要使用一个页面将(2)(3)放在一起,即用户在同一个页面上发言并查看信息,使用框架可以实现这一点,合并的主页面为 Main.aspx ;下面一一介绍这几个页面的实现;留意:在实现页面之前, 需要引入业务规律层空间“MyCharRoom.BussinessLogicLayer ” ;1 用户登录 Login.aspx 用户登录页面 Login.aspx 位于 MyCharRoom.WebLayer空间中,主要功能为:(1)当用户首次使用系统时,将自动将其信息注册到数据库中;(2)用户再次登录时,系统会检查其输入的用户名和密码是否合法,如不合法,就给出提示,并使用户重新登录;假如合法,就进入谈天室主页面 Main.aspx ;Login.aspx 的页面布局如下列图;图 20.8 Login.aspx 的页面布局主要控件的属性为:1. <asp:TextBox id="TextBoxUserName" runat="server"> </asp:TextBox> 2. <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage=" 警告:必填!" ControlToValidate="TextBoxUserName"> </asp:RequiredFieldValidator> 3. <asp:TextBox id="TextBoxPassword" runat="server" TextMode="Password"> </asp:TextBox> 细心整理归纳 精选学习资料 4. <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" 第 11 页,共 16 页 ErrorMessage="警告:必填!" - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -ControlToValidate="TextBoxPassword"> </asp:RequiredFieldValidator> 5. <asp:Button id="ButtonLogin" runat="server" Text=" 登录 "> </asp:Button> 当用户单击“ 登录” 按钮时,其单击大事完成用户的验证和登录系统的工作;其中,验证的过程如所示;猎取用户信息老用户?否 是密码正确?是否进入系统进入系统给出警告用户验证过程实现代码参考如下:1. / 用户单击“ 登录” 按钮的大事2. private void ButtonLogin_Clickobject sender, System.EventArgs e 3. 4. / 猎取用户在页面上的输入5. string userName=TextBoxUserName.Text; / 用户名6. string password=TextBoxPassword.Text; / 密码7. Session.Add"user_name",userName; / 使用 Session 来储存用户名信息8. 9. User user=new User; / 实例化 User 类10. user.LoadDatauserName; / 利用 User 类的 LoadData 方法,猎取用户信息11. 细心整理归纳 精选学习资料 12. ifuser.Exist/假如是老用户 第 12 页,共 16 页 13. 14. ifuser.Password=password / 假如用户合法,转入谈天室主页面15. 16. Response.Redirect"Main.aspx" 17. 18. else / 假如密码错误,给出提示19. 20. Response.Write 21. "<Script Language=JavaScript>alert"验证失败,请重新登录!"</Script>" - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -22. 23. else / / 假如是新用户24. 25. user.AdduserName,password; / 利用 User 类的 Add方法, 添加新用户26. Response.Redirect"Main.aspx" / 转到主页面27. 28. 第57行猎取用户在页面上的输入,并使用 Session 来储存用户名信息;第9、10行实例化一个 User 对象,然后利用其 LoadData 方法猎取用户信息;第12 27行依据用户信息进行验证工作;2 用户发言 Speak.aspx 用户登录页面 Speak.aspx 位于 MyCharRoom.WebLayer空间中,主要功能为将用户发言写入数据库;另外,仍有一个“ 离开” 按钮,可以注销掉用户;页面布局如下列图;用户发言空间布局控件的属性代码如下:1. <asp:TextBox id="TextBoxContent" runat="server" TextMode="MultiLine" > </asp:TextBox> 2. <asp:Button id="ButtonSpeak" runat="server" Text=" 发言 "> </asp:Button> 4. <asp:DropDownList id="DropDownListEmotion" runat="server"> <asp:ListItem Value=" <asp:ListItem Value=" <asp:ListItem Value=" </asp:DropDownList> 微笑着 "> 微笑着 </asp:ListItem> 无奈地 "> 无奈地 </asp:ListItem> 哭丧着脸 "> 哭丧着脸 </asp:ListItem> 5. <asp:DropDownList id="DropDownListColor" runat="server"> <asp:ListItem Value="black" Selected="True"> 黑色 </asp:ListItem> <asp:ListItem Value="red"> 红色 </asp:ListItem> <asp:ListItem Value="blue"> 蓝色 </asp:ListItem> <asp:ListItem Value="green"> 绿色 </asp:ListItem> </asp:DropDownList> 6. <asp:Button id="ButtonExit" runat="server" Text=" 离开 ">

    注意事项

    本文(2022年ASP实验五简单聊天室设计.docx)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开