第8章通讯录管理系统解析_第1页
第8章通讯录管理系统解析_第2页
第8章通讯录管理系统解析_第3页
第8章通讯录管理系统解析_第4页
第8章通讯录管理系统解析_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

项目:通讯录管理系统设计信息与电气工程学院计算机系工作目标终极目标设计并实现“通讯录管理系统”。该系统供应多用户的通讯录管理,并能对通讯录中的联系人分组。最终效果如图所示。《C#程序设计》《C#程序设计》工作任务任务一:系统概要设计;任务二:制作“用户管理”窗体;任务三:制作“用户登录”窗体;任务四:制作“主操作”窗体;任务五:制作“新增联系人”窗体;任务六:制作“修改联系人”窗体;任务七:制作“查找联系人”窗体。《C#程序设计》任务一:系统概要设计

一、功能模块分析本系统将实现多用户对各自通讯录的管理功能,包括:添加联系人、修改联系人、删除联系人、查找联系人。为了体现多用户的特性,还必需包含一个管理子系统,作用是对用户的信息进行管理。《C#程序设计》《C#程序设计》二、数据库设计1、表结构本系统接受SQLServer2000为数据库服务器,一共运用到了两张数据表,其表结构如下:1)表名:用户。作用:存储登录用户的用户名和密码。表中各字段的描述如表8.3所示。《C#程序设计》2)表名:联系人。作用:存储联系人的信息。表中各字段的描述如表所示。《C#程序设计》2、表关系本系统中,联系人表中的用户名字段是对用户表中的用户名字段的引用。因此,用户名字段在联系人表中是外键。两表之间的关系如图所示。《C#程序设计》任务二:制作“用户管理”窗体任务实现1、新建解决方案2、新建“Server”项目3、用VisualStudio建立数据库连接4、创建Server项目中的窗体《C#程序设计》1、

窗体布局

任务三:制作“用户登录”窗体

《C#程序设计》2、

窗体布局说明

用户登录窗体布局说明

《C#程序设计》3、窗体功能描述登录窗体是客户端程序运行后显示的第一个窗体,用于验证用户的身份。用户在文本框中输入用户名和密码后,点击确定按钮,该窗体通过查询数据库中的“用户”表中的记录,推断用户名和密码是否匹配,进而确定是否现实下一个窗体。《C#程序设计》4、

处理流程图

《C#程序设计》学问准备1、SqlConnection对象表示SQLServer数据库的一个打开的连接。最重要的作用就是与SQLServer数据库服务器连接。一般该对象不会单独运用,而是与其他ADO.NET对象一起运用,是其他ADO.NET对象的重要组成部分。《C#程序设计》SqlConnection对象主要属性《C#程序设计》SqlConnection对象主要方法《C#程序设计》运用步骤1、声明一个SqlConnection对象2、设置SqlConnection对象的ConnectionString属性3、调用SqlConnection对象的Open方法,打开数据库连接4、进行数据库操作5、调用SqlConnection对象对象的Close方法,关闭数据库连接《C#程序设计》运用示例SqlConnectionconn=newSqlConnection();conn.ConnectionString=”Server=.;DataBase=PhoneBook;UID=sa;PWD=;”;conn.Open();….//数据库操作conn.Close();说明:ConnectionString属性是SqlConnection最关键的属性,它记录了用于打开SQLServer数据库的字符串,以若干个“key=value”的形式组成,中间用分号间隔SqlConnectionconn=newSqlConnection(Server=.;DataBase=PhoneBook;UID=sa;PWD=;);《C#程序设计》2、SqlCommand对象表示要对SQLServer数据库执行的一个Transact-SQL语句或存储过程。当创建SqlCommand的实例时,读/写属性将被设置为它们的初始值。

SqlCommand对象主要属性《C#程序设计》《C#程序设计》运用步骤1、声明一个SqlConnection对象2、设置SqlConnection对象对象的ConnectionString属性3、调用SqlConnection对象对象的Open方法,打开数据库连接4、声明一个SqlCommand对象5、设置SqlCommand对象的Connection为SqlConnection对象6、设置SqlCommand对象的CommandText属性(SQL语句)7、依据SQL语句的不同性质,调用相应的Execute***方法8、调用SqlConnection对象对象的Close方法,关闭数据库连接《C#程序设计》运用示例SqlConnectionconn=newSqlConnection();conn.ConnectionString=”Server=.;DataBase=PhoneBook;UID=sa;PWD=;”;conn.Open();SqlCommandcmd=newSqlCommand();cmd.Connection=conn;cmd.CommandText=”insertinto用户values(‘admin’,’admin’)”;cmd.ExecuteNonQuery();conn.Close();《C#程序设计》5、创建窗体将进行“PhoneBook”项目(客户端)的开发,为了调试便利,请先将“PhoneBook”项目设置为启动项目。由于登录窗体是“PhoneBook”项目的第一个显示的窗体,因此须要将设置为启动窗体。在“解决方案资源管理器”中的“PhoneBook”项目中双击“Program.cs”文件。原来在新建项目中默认创建的窗体“Form1.cs”文件已经不再须要,可以在“解决方案资源管理器”中右击该文件节点,在弹出的快捷菜单中单击“删除”项将其删除。《C#程序设计》staticvoidMain(){ Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newForm1());}改为staticvoidMain(){ Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newfrmLogin());}《C#程序设计》任务四:制作“主操作”窗体《C#程序设计》《C#程序设计》窗体布局《C#程序设计》1TreeView控件TreeView主要属性

《C#程序设计》TreeView主要方法

TreeView主要事务《C#程序设计》运用示例1)在设计器中添加或移除节点2)以编程方式添加节点(1)运用Nodes属性的Add方法。TreeNodenewNode=newTreeNode("新节点");treeView1.SelectedNode.Nodes.Add(newNode);(2)

以编程方式移除节点//删除当前选中的节点treeView1.Nodes.Remove(treeView1.SelectedNode);//删除全部的节点TreeView1.Nodes.Clear();《C#程序设计》设置节点的ImageIndex和SelectedImageIndex属性。ImageIndex属性确定正常和绽开状态下的节点显示的图像;SelectedImageIndex属性确定选定状态下的节点显示的图像。这些属性可在代码中设置,或在“树节点编辑器”中设置。若要打开“树节点编辑器”,请单击“属性”窗口中Nodes属性旁边的省略号按钮()。treeView1.SelectedNode.ImageIndex=0;treeView1.SelectedNode.SelectedImageIndex=1《C#程序设计》2、ListView控件概述Windows窗体ListView控件显示了带图标的项的列表。可运用列表视图创建类似于Windows资源管理器右窗格的用户界面。该控件具有四种视图模式:“LargeIcon”、“SmallIcon”、“List”和“Details”。大图标视图模式在项文本旁显示大图标;假如控件足够大,则项显示在多列中。小图标视图模式除显示小图标外,其他方面与大图标视图模式相同。列表视图模式显示小图标,但总是显示在单列中。“Details”视图模式在多列中显示项。《C#程序设计》ListView主要属性

《C#程序设计》ListView主要方法

《C#程序设计》ListView主要事务《C#程序设计》运用示例1)在设计器中添加列、添加或移除项2)以编程方式添加项运用Items属性的Add方法。ListViewItemlvi=newListViewItem();listView1.Items.Add(lvi);3)以编程方式移除项运用Items属性的RemoveAt或Clear方法。RemoveAt方法移除一项,而Clear方法移除列表中的全部项。listView1.Items.RemoveAt(0);listView1.Items.Clear();《C#程序设计》4)以编程方式添加列将该控件的View属性设置为Details。运用列表视图Columns属性的Add方法。listView1.View=View.Details;listView1.Columns.Add("Filetype",20);《C#程序设计》5)运用ListView控件在列中显示子项调用由项的SubItems属性返回的集合的Add方法。下面的代码实例为一个列表项设置职员姓名和部门。listView1.Items[0].SubItems.Add("JohnSmith");listView1.Items[0].SubItems.Add("Accounting");6)选择ListView控件中的项this.listView1.Focus();this.listView1.Items[0].Selected=true;《C#程序设计》窗体功能描述主窗体是连接各个子窗体的桥梁。用户可以通过主窗体找到各个操作的入口,例如,用户想添加一个联系人,就可以点击工具栏的“新增”按钮,或者也可以点击菜单栏的“联系人”-“新增…”菜单项,这时,主窗体会将添加联系人的子窗体显示,供用户操作。另外,主窗体也是数据集中显示的场所。用户可以在左边的树型控件中阅读联系人的分组信息;也可以在右边的列表中查看联系人的具体信息;也可以在状态栏中查看联系人的数量。《C#程序设计》

处理流程图

《C#程序设计》任务四:制作“主操作”窗体数据操作学问准备SqlDataReaderSqlDataReader:供应一种从SQLServer数据库读取行的只进流的方式。若要创建SqlDataReader,必需调用SqlCommand对象的ExecuteReader方法,而不要干脆运用构造函数。《C#程序设计》SqlDataReader主要属性

《C#程序设计》SqlDataReader主要方法

《C#程序设计》运用流程1.定义SqlConnection对象2.定义SqlCommand对象3.设置SqlCommand对象的CommandText属性,一般为Select语句4.打开SqlConnection对象5.通过执行SqlCommand对象的ExecuteReader方法,返回一个SqlDataReader对象6.运用while循环,读取返回结果列表的每一行7.在while循环体内,依据字段类型运用相应的Get方法,获得每个字段的值8.对获得的数据进行处理9.关闭SqlDataReader对象10.关闭SqlConnection对象《C#程序设计》conn.Open();SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read()){trvGroup.Nodes.Add(sdr[0].ToString());}sdr.Close();conn.Close();《C#程序设计》6、相关代码1)配置文件由于在代码中会多次用到连接字符串,因此,可以将其单独定义为一个变量,以便利调用。但是,这样不利于应用程序的部署,因为连接字符串中会运用到用户名和密码,而最终用户的数据库服务器的用户名和密码不行能和开发时一样,所以这里运用了“配置文件”。《C#程序设计》“App.config”是一个XML格式的文件,它存储了这个应用程序的一些配置信息,例如现在添加的ConnectionString信息。在程序中,有特地的对象来处理配置文件:privatestringstrConn=System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];有了配置文件后,假如在部署应用程序时,须要修改连接字符串,那就只要干脆修改配置文件中的内容就可以了。《C#程序设计》2)窗体加载事务方法3)加载分组信息到TreeView(LoadGroup方法)4)加载当前分类的联系人信息(LoadList方法)5)当TreeView选中的节点变更后6)删除联系人《C#程序设计》任务五:制作“新增联系人”窗体《C#程序设计》任务实现1、窗体布局《C#程序设计》窗体布局说明

《C#程序设计》3窗体功能描述新增联系人窗体:通过搜集用户输入联系人的各项信息(姓名、电话必填,其余可为空),向数据库中的联系人表添加记录。由于在服务端可以对联系人的最大数量和组别的最大数量进行限制,因此在用户添加的联系人或组别超过限制值时,添加将失败。留意:读者在布局窗体控件中,请自行给窗体添加一个“打开文件对话框”(OpenFileDialog),命名为:dlg,并设置其Filter属性:BMP图像*.bmp|*.bmp|JPEG图像*.jpg|*.jpg|Gif图像*.gif|*.gif|全部文件*.*|*.*。《C#程序设计》4处理流程图

《C#程序设计》任务五:制作“新增联系人”窗体学问准备1、SqlParameterSqlParmater对象:表示SqlCommand的参数。运用方法如下:SqlDataReader的运用流程:1.

定义SqlConnection对象2.

定义SqlCommand对象3.

设置SqlCommand对象的CommandText属性(带参数)4.

调用SqlCommand对象的Parameters.Add()方法,添加参数5.

设置SqlCommand对象的参数值6.

打开SqlConnection对象7.

通过执行SqlCommand对象的Execute***方法8.

关闭SqlConnection对象《C#程序设计》运用实例:cmd_insert.Parameters.Add("@编号",SqlDbType.Int);cmd_insert.Parameters["@编号"].Value=maxid;《C#程序设计》相关代码事务方法1)窗体加载事务2)加载组别信息到ComboBox控件3)从文件加载图片到图片框(图片框点击事务)4)添加联系人(确定按钮点击事务)《C#程序设计》留意(1)获得用户名。程序中通过访问当前窗体的Ower窗体(拥有者)上的控件tsslUserName(任务栏的一个面板),在任务4中,已经强调过,该控件的Modifiers属性是public,其目的就是为了在这里能够访问。(2)加载默认照片。因为User这张图片已经被添加到当前项目中,成为该项目的一个资源,所以在设置图片框控件的属性Image时,不须要通过访问图片文件获得,而可以通过访问PhoneBook.Properties.Resources.User获得。《C#程序设计》1DataSet对象DataSet(数据集)对象:数据集是包含数据表的对象,可以在这些数据表中临时存储数据以便在应用程序中运用。假如应用程序要求运用数据,则可以将该数据加载到数据集中,数据集在本地内存中为应用程序供应了待用数据的缓存。即使应用程序从数据库断开连接,也可以运用数据集中的数据。数据集维护有关其数据的更改的信息,因此可以跟踪数据更新,并在应用程序重新连接时将更新发送回数据库。任务六:制作“修改联系人”窗体《C#程序设计》DataSet中最重要的是DataTableCollection(数据表集合),包括若干个DataTable对象,而一个DataTable对象可以理解为一个二维表:DataRowCollection(数据行集合)和DataColumnCollection(数据列集合)。访问DataSet对象的方法:假设有一个DataSet对象ds访问DataTable对象:DataTabledt1=ds.Tables[0];//依据索引DataTabledt2=ds.Tables[“用户”];//依据表名访问DataRow对象DataRowdr1=dt1.Rows[0];//依据索引DataRowdr2=dt1.Rows[“密码”];//依据字段名《C#程序设计》通常状况下,DataSet对象不须要手工构造。可以运用SqlDataAdapter对象的Fill方法进行构造。《C#程序设计》任务六:制作“修改联系人”窗体学问准备1、SqlDataAdapter对象表示用于填充DataSet和更新SQLServer数据库的一组数据吩咐和一个数据库连接。SqlDataAdapter是DataSet和SQLServer之间的桥接器,用于检索和保存数据。SqlDataAdapter通过对数据源运用适当的Transact-SQL语句映射Fill(它可更改DataSet中的数据以匹配数据源中的数据)和Update(它可更改数据源中的数据以匹配DataSet中的数据)来供应这一桥接。《C#程序设计》SqlDataAdapter主要属性

《C#程序设计》SqlDataAdapter主要方法《C#程序设计》运用流程:1.定义SqlDataAdapter对象2.设置SqlDataAdapter对象的SelectCommand属性(须要另外定义SqlConnection对象和SqlCommand对象)3.

定义DataSet对象4.

调用SqlDataAdapter对象的Fill方法说明:在调用SqlDataAdapter对象的Fill方法之前,不须要将SqlDataAdapter对象的SelectCommand属性的Connection属性打开(调用Open()方法),SqlDataAdapter对象将检测连接是否打开,假如没有打开,则先打开,等Fill()方法调用结束,关闭连接。《C#程序设计》SqlDataAdaptersda=newSqlDataAdapter(cmd);DataSetds=newDataSet();sda.Fill(ds);《C#程序设计》二、任务实现1窗体布局“修改联系人”窗体的布局与“添加联系人”窗体的布局是一样的,读者可以运用“复制”的方式把全部的控件从“添加联系人”窗体中获得。2处理流程图《C#程序设计》3相关代码

温馨提示

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

评论

0/150

提交评论