C#通讯录管理系统总结汇报.docx

上传人:b****8 文档编号:27844755 上传时间:2023-07-05 格式:DOCX 页数:26 大小:156.92KB
下载 相关 举报
C#通讯录管理系统总结汇报.docx_第1页
第1页 / 共26页
C#通讯录管理系统总结汇报.docx_第2页
第2页 / 共26页
C#通讯录管理系统总结汇报.docx_第3页
第3页 / 共26页
C#通讯录管理系统总结汇报.docx_第4页
第4页 / 共26页
C#通讯录管理系统总结汇报.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C#通讯录管理系统总结汇报.docx

《C#通讯录管理系统总结汇报.docx》由会员分享,可在线阅读,更多相关《C#通讯录管理系统总结汇报.docx(26页珍藏版)》请在冰豆网上搜索。

C#通讯录管理系统总结汇报.docx

C#通讯录管理系统总结汇报

C#通讯录管理系统

总结汇报

 

课题名称:

C#通讯录管理系统

专业:

软件技术

班级:

1111

姓名:

祝中兴

学号:

2011828136

 

 

1系统分析

1.1需求分析

本系统将实现多用户对各自通讯录的管理功能,包括:

添加联系人、修改联系人、删除联系人、查找联系人。

为了体现多用户的特性,还必须包含一个用户管理子系统,作用是对用户的信息进行管理。

具体功能模块如图1-1所示

 

图1-1功能模块

1.2储存过程分析

查找联系人模块使用储存过程来搜索数据,查找联系人的储存过程如下

//(教材P250)

ALTERPROCEDURE[查找联系人]

@namevarchar(50),

@phonevarchar(50),

@uservarchar(50)

AS

iflen(@user)=0return1

iflen(@name)=0andlen(@phone)=0

begin

select姓名,组别,工作单位,联系电话,电子邮箱?

from[联系人]

return

end

iflen(@name)<>0andlen(@phone)=0

begin

set@name='%'+@name+'%'

select姓名,组别,工作单位,联系电话,电子邮箱?

from[联系人]

where姓名like@name

return

end

iflen(@name)=0andlen(@phone)<>0

begin

select姓名,组别,工作单位,联系电话,电子邮箱?

from[联系人]

where联系电话like@phone

return

end

iflen(@name)=0andlen(@phone)<>0

begin

select姓名,组别,工作单位,联系电话,电子邮箱?

from[联系人]

where联系电话like@phoneand姓名like@name

return

end

Go

 

2系统的实现

2.1登陆界面的实现

登录窗体如图2-1

图2-1

处理流程图如图2-2示

不合法接受到用户输入不匹配

 

合法

 

匹配

 

2-2录窗体流程图

实现代码如下

privatevoidbtnCannel_Click(objectsender,EventArgse)

{

Application.Exit();

}

privatevoidbtnOk_Click(objectsender,EventArgse)

{

stringusername,password;

username=txtUserName.Text.Trim();

password=txtPassWord.Text.Trim();

if(username=="")

{

MessageBox.Show("用户名不能为空!

");

return;

}

if(password=="")

{

MessageBox.Show("密码不能为空!

");

return;

}

SqlConnectionconn=newSqlConnection();

conn.ConnectionString="server=.;DataBase=PhoneBook;UID=sa;PWD=;";

conn.Open();

SqlCommandcm=newSqlCommand();

cm.Connection=conn;

cm.CommandText="selectcount(*)from用户where用户名='"+username+"'and密码='"+password+"'";

intrecordC=Convert.ToInt32(cm.ExecuteScalar());

if(recordC==1)

{

this.Hide();

frmMainf=newfrmMain();

f.tsslUserName.Text=txtUserName.Text.Trim();

f.Show();

}

else

{

MessageBox.Show("用户不合法!

");

}

conn.Close();

}

2.2主窗体的实现

主窗体设计如图2-3

图2-3

主窗体处理流程图如图2-4示

 

等待用户命令

 

添加命令修改命令删除命令查找命令视图命令

 

2.4窗体流程图

实现代码如下

publicpartialclassfrmMain:

Form

{

publicfrmMain()

{

InitializeComponent();

}

privatestringstrConn=System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];

//主窗体加载事件

privatevoidMainForm_Load(objectsender,EventArgse)

{

LoadGroup();

if(trvGroup.Nodes.Count>0)

{

trvGroup.SelectedNode=trvGroup.Nodes[0];

LoadList();

}

else

{

lvContact.Clear();

}

}

//加载分组信息到TreeView

privatevoidLoadGroup()

{

try

{

trvGroup.Nodes.Clear();

SqlConnectionconn=newSqlConnection(strConn);

SqlCommandcmd=newSqlCommand();

cmd.Connection=conn;

cmd.CommandText="selectdistinct组别from联系人where用户名='"+tsslUserName.Text+"'";

conn.Open();

SqlDataReadersdr=cmd.ExecuteReader();

while(sdr.Read())

{

trvGroup.Nodes.Add(sdr[0].ToString());

}

sdr.Close();

conn.Close();

}

catch

{}

}

//加载当前分类的联系人信息

privatevoidLoadList()

{

if(trvGroup.Nodes.Count==0)

{

lvContact.Clear();

return;

}

if(trvGroup.SelectedNode.Index>=0)

{

stringstrGroup=trvGroup.SelectedNode.Text;

try

{

lvContact.Clear();

lvContact.Columns.Add("姓名",100);

lvContact.Columns.Add("工作单位",150);

lvContact.Columns.Add("联系电话",100);

lvContact.Columns.Add("电子邮箱",150);

SqlConnectionconn=newSqlConnection(strConn);

SqlCommandcmd=newSqlCommand();

cmd.Connection=conn;

cmd.CommandText="select编号,姓名,工作单位,联系电话,电子邮箱from联系人where组别='"+strGroup+"'and用户名='"+tsslUserName.Text+"'";

conn.Open();

SqlDataReadersdr=cmd.ExecuteReader();

intcount=0;

while(sdr.Read())

{

ListViewItemlvi=newListViewItem();

lvi.Text=sdr["姓名"].ToString();

lvi.SubItems.Add(sdr["工作单位"].ToString());

lvi.SubItems.Add(sdr["联系电话"].ToString());

lvi.SubItems.Add(sdr["电子邮箱"].ToString());

lvi.Tag=sdr["编号"];

lvi.ImageIndex=0;

lvContact.Items.Add(lvi);

count++;

}

tsslCount.Text="共计"+count.ToString()+"个联系人";

sdr.Close();

conn.Close();

}

catch

{}

}

}

//添加方法在主窗体中的实现

privatevoidAdd()

{

frmAddf=newfrmAdd();

if(f.ShowDialog(this)==DialogResult.OK)

{

LoadGroup();

if(trvGroup.Nodes.Count>0)

{

trvGroup.SelectedNode=trvGroup.Nodes[0];

LoadList();

}

else

{

lvContact.Clear();

}

}

}

//编辑方法在主窗体的实现

privatevoidEdit()

{

if(lvContact.SelectedItems.Count==1)

{

intid=Convert.ToInt32(lvContact.SelectedItems[0].Tag);

frmEditf=newfrmEdit(id);

if(f.ShowDialog(this)==DialogResult.OK)

{

LoadGroup();

if(trvGroup.Nodes.Count>0)

{

trvGroup.SelectedNode=trvGroup.Nodes[0];

LoadList();

}

else

{

lvContact.Clear();

}

}

}

}

//删除方法在住窗体中的实现

privatevoidDelete()

{

if(lvContact.SelectedItems.Count<1)

{

return;

}

if(MessageBox.Show("是否要删除选中的联系人?

","删除确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)

{

stringstrWhere="where编号in(";

foreach(ListViewItemlviinlvContact.SelectedItems)

{

strWhere+=lvi.Tag.ToString()+",";

}

strWhere=strWhere.Substring(0,strWhere.Length-1);

strWhere+=")";

try

{

SqlConnectionconn=newSqlConnection(strConn);

SqlCommandcmd=newSqlCommand();

cmd.Connection=conn;

cmd.CommandText="deletefrom联系人"+strWhere;

conn.Open();

cmd.ExecuteNonQuery();

conn.Close();

LoadGroup();

if(trvGroup.Nodes.Count>0)

{

trvGroup.SelectedNode=trvGroup.Nodes[0];

LoadList();

}

else

{

lvContact.Clear();

}

}

catch{}

}

}

//搜索方法在主窗体中的实现

privatevoidSearch()

{

frmSearchf=newfrmSearch(tsslUserName.Text);

f.ShowDialog();

}

2.3新增联系人实现

新增联系人设计如图2-5

图2-5

新增联系人窗体流程图如图2-6

 

N

 

Y

N

 

Y

 

添加命令

 

图2-6

实现代码如下

publicpartialclassfrmAdd:

Form

{

publicfrmAdd()

{

InitializeComponent();

}

privatestringstrUserName="";

privateintgroupCount=0;

privateintcontentCount=0;

privatestringtxtFilePath="";

privatestringstrConn=System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];

privatevoidfrmAdd_Load(objectsender,EventArgse)

{

//获取用户名

strUserName=((frmMain)(this.Owner)).tsslUserName.Text;

try

{

SqlConnectionconn=newSqlConnection(strConn);

SqlCommandcmd=newSqlCommand();

cmd.Connection=conn;

//获取配置信息

cmd.CommandText="select*from用户where用户名='"+strUserName+"'";

conn.Open();

SqlDataReadersdr=cmd.ExecuteReader();

if(sdr.Read())

{

groupCount=Convert.ToInt32(sdr["组别数量最大值"]);

contentCount=Convert.ToInt32(sdr["联系人数量最大值"]);

}

sdr.Close();

//获取联系人数

cmd.CommandText="selectcount(*)from联系人where用户名='"+strUserName+"'";

intcount=Convert.ToInt32(cmd.ExecuteScalar());

if(count>=contentCount)

{

MessageBox.Show("联系人的个数已经达到上限!

\r\n如需继续添加联系人,请联系管理员。

","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

btnOK.Enabled=false;

}

conn.Close();

}

catch

{}

//加载组别

LoadGroup();

}

protectedvoidLoadGroup()

{

try

{

cmbGroup.Items.Clear();

SqlConnectionconn=newSqlConnection(strConn);

SqlCommandcmd=newSqlCommand();

cmd.Connection=conn;

cmd.CommandText="selectdistinct组别from联系人";

conn.Open();

SqlDataReadersdr=cmd.ExecuteReader();

while(sdr.Read())

{

cmbGroup.Items.Add(sdr[0].ToString());

}

sdr.Close();

conn.Close();

if(groupCount>0&&cmbGroup.Items.Count==groupCount)

{

cmbGroup.DropDownStyle=ComboBoxStyle.DropDownList;

}

else

{

cmbGroup.DropDownStyle=ComboBoxStyle.DropDown;

}

}

catch

{}

}

protectedvoidbtnOK_Click(objectsender,EventArgse)

{

#region获取信息

//用户名

strUserName=((frmMain)(this.Owner)).tsslUserName.Text;

//姓名

stringname;

if(txtName.Text=="")

{

MessageBox.Show("联系人姓名不能为空!

","添加失败",MessageBoxButtons.OK,MessageBoxIcon.Error);

return;

}

else

{

name=txtName.Text;

}

//组别

stringgroup;

if(cmbGroup.Text.Trim()=="")

{

group="未分组";

}

else

{

group=cmbGroup.Text.Trim();

}

//电话

stringphone=txtPhone.Text.Trim();

//工作单位

stringcompany=txtCompany.Text.Trim();

//email

stringemail=txtEmail.Text.Trim();

byte[]b=null;

if(txtFilePath!

="")

{

try

{

FileStreamfs=newFileStream(txtFilePath,FileMode.Open,FileAccess.Read);

intlen=Convert.ToInt32(fs.Length);

b=newbyte[len];

fs.Read(b,0,len);

fs.Close();

}

catch

{

b=null;

}

}

#endregion获取信息

#region添加数据

try

{

SqlConnectionconn=newSqlConnection(strConn);

SqlCommandcmd_maxid=newSqlCommand();

cmd_maxid.Connection=conn;

//获取最大编号

cmd_maxid.CommandText="selectisnull(max(编号),0)+1from联系人";

conn.Open();

intmaxid;

try

{

maxid=Convert.ToInt32(cmd_maxid.ExecuteScalar());

}

catch

{

maxid=1;

}

//insert

SqlCommandcmd_insert=newSqlCommand();

cmd_insert.Connection=conn;

cmd_insert.CommandText="insertinto联系人(编号,用户名,组别,姓名,工作单位,联系电话,电子邮箱,照片)";

cmd_insert.CommandText+="values(@编号,@用户名,@组别,@姓名,@工作单位,@联系电话,@电子邮箱,@照片)";

cmd_insert.Parameters.Add("@编号",SqlDbType.Int);

cmd_insert.Parameters.Add("@用户名",SqlDbType.VarChar,50);

cmd_insert.Parameters.Add("@组别",SqlDbType.VarChar,50);

cmd_insert.Parameters.Add("@姓名",SqlDbType.VarChar,50);

cmd_insert.Parameters.Add("@工作单位",SqlDbType.VarChar,500);

cmd_insert.Parameters.Add("@联系电话",SqlDbType.VarChar,200);

cmd_insert.Parameters.Add("@电子邮箱",SqlDbType.VarChar,200);

cmd_insert.Parameters.Add("@照片",SqlDbType.Image);

cmd_insert.Parameters["@编号"].Value=maxid;

cmd_insert.Parameters["@用户名"].Value=strUserName;

cmd_insert.Parameters["@组别"].Value=group;

cmd_insert.Parameters["@姓名"].Value=name;

cmd_insert.Parameters["@工作单位"].Value=company;

cmd_insert.Parameters["@联系电话"].Value=phone;

cmd_inse

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1