通讯录设计

信息与电气工程学院

课程设计说明书

(2013/2014学年第一学期)

课程名称 : 软件程序设计 题 目 : 通 讯 录 专业班级 : 电子信息1103 学生姓名 : 学 号: 指导教师 :

设计周数 : 2周

设计成绩 :

2013年1月8日

一、课程设计目的

随着人们的人际关系越来越广泛,想要记住他们的联系方式是一大难题,所以通讯录能够方便的给我们带来所需要的相关信息。然而像以前的记事本,电话薄已经无法满足我们的需求。现在计算机越来月普及,所以一个通讯录管理系统很好的满足了用户的需求。直接可以通过电脑的通讯录来查询联系人信息,可以脱离那繁琐的记事本。通讯录管理系统能给用户带来很大的方便。

通讯录管理系统是一个用户用来存储联系方式的管理系统,它方便了用户对联系人的个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。

二、课程设计正文 2.1 设计题目

通讯录管理系统

2.2 设计思路

通讯录管理系统功能需求分析:

1、通讯录管理系统主要功能分为七个模块:用户登录、密码修改、显示全部、用户查询、添加记录、修改记录、删除记录。

2、用户登录与密码修改:实现用户登录通讯录后可以修改密码已实现信息的安全性。

3、显示全部:实现用户对所有在数据库中的数据的显示,方便用户了解数据存储的情况。

4、添加联系人:实现用户添加一条完整的记录,包括姓名、生日、电话、QQ、地址。

5、查找联系人:支持模糊查找和精确查找,实现用户在本软件数据库中查找自己需要的数据功能。

6、修改信息:用户对数据库中已存在的记录进行修改,然后保存已经修改过的数据

7、删除信息:用户对数据库中已经存在的记录进行行删除操作,然后保存修改过的数据

2.3运行界面需求

界面应简洁,使用者易操作

2.4开发及运行环境

本系统开发平台及运行环境如下:

系统开发平台:Microsoft Visual Studio 2010 系统开发语言:C#

运行环境:Microsoft.NET Framework SDK v2.0

三、模块分析及设计 3.1系统数据结构图如图1

图1

3.2系统功能结构图如图2

图2

3.3、系统数据流程图

登录窗口流程图

修改密码流程图

添加信息流程图

修改与删除的流程图

四、数据库设计 4.1数据库需求分析

针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细的调研和分析,总结出如下的需求信息:

1. 每条原始记录要有姓名、生日、电话、QQ、地址,其中姓名不能为空。 2. 保证查询到的数据与姓名相一致 3. 根据相应姓名删除对应的全部数据

4.2 数据表设计

数据库名称:xlw,共有2个表: 1、用户表(UserName)2、通讯录信息表(information)

4.2.1用户登录信息表

4.2.2通讯录信息表

五、制作过程及要点 5.1、登录窗口界面如图

主要代码实现如下:

namespace xlw {

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

public static string UserName = null;

private void button2_Click(object sender, EventArgs e) {

string connString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(connString); conn.Open();

string sql = "select*from 登录表 where UserName='" +

txtUsername.Text.Trim().ToLower() + "'and UserPwd='" + txtPassword.Text.Trim() + "'"; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) {

UserName = dr["UserName"].ToString(); FrmMain1 frm = new FrmMain1(); frm.Show(); this.Hide(); } else {

MessageBox.Show("用户名或密码错误", "出错了", MessageBoxButtons.OK, MessageBoxIcon.Error); } }

private void txtUsername_TextChanged(object sender, EventArgs e) { }

private void button1_Click(object sender, EventArgs e) {

Form1 frm = new Form1 (); frm.Show(); this.Hide(); }

private void txtUsername_MouseHover(object sender, EventArgs e) {

txtUsername.Focus(); }

private void txtPassword_MouseHover(object sender, EventArgs e) {

txtPassword.Focus(); }

private void txtUsername_KeyPress(object sender, KeyPressEventArgs e) {

if (e.KeyChar == (char)13) {

txtPassword.Focus(); } }

private void Form1_Load(object sender, EventArgs e) {

button1.Image = imageList1.Images[0]; button2.Image = imageList1.Images[1]; }}}

5.2系统主界面设计

5.2.1主界面运行截图如下:

5.2.2通讯录“修改密码”界面截图如下:

主要代码如下:

namespace xlw {

public partial class Form2 : Form {

public Form2() {

InitializeComponent(); }

private void Form2_Load(object sender, EventArgs e)

{

button1.Image = imageList1.Images[0]; button2.Image = imageList1.Images[1];

}

private void button1_Click(object sender, EventArgs e) {

if (txtNewpwd.Text.Trim() == txtNewpwdagain.Text.Trim()) {

string connString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(connString); conn.Open();

string sqlCheckPwd = "select count(*)from 登录表where

UserName='"+Form1.UserName +"'and UserPwd='" + txtOldpwd .Text .Trim () + "'"; SqlCommand cmdCheckPwd = new SqlCommand(sqlCheckPwd, conn); int j = (int)cmdCheckPwd.ExecuteScalar(); if (j == 1) {

string sql = "update 登录表set UserPwd='" + txtNewpwd.Text.Trim() + "'where UserName='" + Form1.UserName + "'";

SqlCommand cmd =new SqlCommand(sql, conn); int i = cmd.ExecuteNonQuery(); if (i == 1) {

MessageBox.Show("密码修改成功!"); } else {

MessageBox.Show("密码修改失败!");

} } else

{ MessageBox.Show("输入的旧密码不正确!"); }

conn.Close(); } else

{ MessageBox.Show("两次新密码不一致!"); } }

private void button2_Click(object sender, EventArgs e) {

txtOldpwd.Text = ""; txtNewpwd.Text = ""; txtNewpwdagain .Text = ""; } } }

5.2.3、用户添加模块

用户进入通讯录系统主界面,点击添加,进行通讯录的添加操作,填写相应的内容。

相关运行界面如下:

相关代码如下

namespace xlw {

public partial class Form3 : Form

{

public Form3()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

string connString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated

Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(connString);

conn.Open();

if (txtName.Text.Trim().Length != 0)

{

string sql = "insert into

information(UserName,UserBirthday,UserTelphone,UserNumber,UserAddress,PictureBox) Values('" + txtName.Text.Trim() + "','" + txtBirthday.Text + "','" + txtTelphone.Text + "','" + txtNumber.Text + "','" + txtAddress.Text + "','" + textBox1.Text.Trim() + "')";

SqlCommand cmd = new SqlCommand(sql, conn);

int j = cmd.ExecuteNonQuery();

if (j == 1)

{

MessageBox.Show("添加成功");

}

else

{

MessageBox.Show("添加失败");

}

}

else

{

MessageBox.Show("姓名不能为空!");

}

this.Hide();

conn.Close();

}

private void pictureBox1_Click(object sender, EventArgs e)

{

}

private void button2_Click(object sender, EventArgs e)

{

FrmMain1 frm = new FrmMain1 ();

this.Hide();

}

//public string photoadress = @"c:\001.jpg";

private void button3_Click(object sender, EventArgs e)

{

using (OpenFileDialog lvse = new OpenFileDialog())

{

lvse.Title = "选择图片"; lvse.InitialDirectory = "";

lvse.Filter = "图片文件|*.bmp;*.jpg;*.jpeg;*.gif;*.png"; lvse.FilterIndex = 1; if (lvse.ShowDialog() == DialogResult.OK)

{

pictureBox1.Image = Image.FromFile(lvse.FileName);

textBox1.Text = lvse.FileName;

}

}

}

private void Form3_Load(object sender, EventArgs e)

{

}

private void txtName_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)13)

{

txtBirthday.Focus();

}

}

private void txtBirthday_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)13)

{

txtTelphone.Focus();

}

}

private void txtTelphone_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)13)

{

txtNumber.Focus();

}

}

private void txtNumber_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)13)

{

txtAddress.Focus();

}

}

private void button4_Click(object sender, EventArgs e)

{

FrmMain1 frm = new FrmMain1();

frm.Show();

this.Close();

}

5.2.4显示全部模块

用户进入编辑界面之后,点击显示全部按钮,则系统将数据库中数存储的所有联系人的记录显示到dataGridView1界面中,按照一定的规格排列。其中各项中的数据则严格按照数据库中的要求排列显示。

显示全部功能截图如下:

实现的代码如下

private void button4_Click(object sender, EventArgs e)

{

string ConnString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated

Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(ConnString);

conn.Open();

string sql = "select UserName as 姓名,UserBirthday as 生日,UserTelphone as 电话,UserNumber as QQ,UserAddress as 地址,PictureBox from information ";

SqlDataAdapter da = new SqlDataAdapter(sql, conn);

SqlCommand cmd = new SqlCommand(sql, conn);

DataSet ds = new DataSet();

da.Fill(ds);

this.dataGridView1.DataSource = ds.Tables[0].DefaultView;

}

5.2.5 修改界面模块

截图如下:

实现的代码如下:

private void button1_Click(object sender, EventArgs e)

{

SqlCommandBuilder cb = new SqlCommandBuilder(da);

da.Update(ds);

MessageBox.Show("修改成功!");

}

5.2.6删除界面模块

删除前后比较截图如下:

删除前 删除后

实现删除功能的代码如下:

private void button2_Click(object sender, EventArgs e)

{

DialogResult dlResult = MessageBox.Show(this, "要删除这些信息吗?", "请确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (dlResult == DialogResult.Yes)

{

int j = dataGridView1.SelectedRows.Count;

int[] l = new int[j];

int i;

for (i = 0; i

{

l[i] = dataGridView1.SelectedRows[i].Index;

}

int k = 0;

while (k

{

ds.Tables[0].Rows[l[k]].Delete();

k++;

}

SqlCommandBuilder cb = new SqlCommandBuilder(da);

da.Update(ds);

}

}

5.2.7查询界面模块

查询的截图如下:

实现查询功能的代码如下:

private void button3_Click(object sender, EventArgs e)

{

string ConnString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated

Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(ConnString);

conn.Open();

string sql = "select UserName as 姓名,UserBirthday as 生日,UserTelphone as 电话,UserNumber as QQ,UserAddress as 地址,PictureBox from information where UserName like '" +

textBox1.Text.Trim() + "%'";

SqlDataAdapter da = new SqlDataAdapter(sql, conn);

SqlCommand cmd = new SqlCommand(sql, conn);

DataSet ds = new DataSet();

da.Fill(ds);

this.dataGridView1.DataSource = ds.Tables[0].DefaultView;

SqlDataReader dr = cmd.ExecuteReader();

if (dr.Read())

{ if (dr["PictureBox"].ToString().Trim() == "")

{ this.pictureBox1.Visible = false; }

else

{

this.pictureBox1.Visible = true;

string a = dr["PictureBox"].ToString();

this.pictureBox1.Image = Image.FromFile(a);

}

}

}

六、设计总结

通过这次的课程设计,让我好好的检查了一下自己的c#知识和数据库知识,发现了自己有很大的不足,自己的c#知识学的不够扎实,还有之前学的数据库知识也都忘得差不多了,所以这个课程设计做的时候有点吃力,到处碰壁,通过老师的视频演示和同学的帮助下,克服了一个个难题。在操作过程中也遇到了很大的问题,一个可以改个属性就能实现的问题,我却不知道该如何下手,由此可见自己的动手能力是何等的差,不过经过这两周的课程设计,自己的动手能力有了明显的提高,比以前的操作熟练了好多,在调试出错时能很快的发现了自己在哪里出错,让我在这次课程设计中复习了c#的知识,又回顾的数据库相关的知识,使我对VS程序设计有了更深层次的认识和理解,懂得了VS窗体应用程序基本设计流程

这次课程设计老师给我们分了小组,在我这个小组里,我们很好的体现了团结的精神,在一个人遇到难题无法解决的时候,大家都会伸出援助之手,帮助一起解决问题,这样既能帮助别人,自己也能掌握解决这个问题的方法,可谓是两全齐美。

最后,在此由衷的向我的指导老师们表示衷心的感谢,是他们的悉心指导和严格要求,才使我的课程设计有了较为完善的一面,才有了我能力的提高,得到了充分的锻炼。

最后,在此由衷的向我的指导老师们表示衷心的感谢,是他们的悉心指导和严格要求,才使我的课程设计有了较为完善的一面,才有了我能力的提高,得到了充分的锻炼。

七、参考文献

[1] 沃森,内格尔,齐立波,黄静.c#入门经典[5].清华大学出版社,2012,12.

[2] 米凯利斯(Mark Michaelis),周靖.c#本质论[3].人民邮电出版社,2010,09.

[3] 马俊.c#程序设计及应用教程[3]. 人民邮电出版社,2009,05.

信息与电气工程学院

课程设计说明书

(2013/2014学年第一学期)

课程名称 : 软件程序设计 题 目 : 通 讯 录 专业班级 : 电子信息1103 学生姓名 : 学 号: 指导教师 :

设计周数 : 2周

设计成绩 :

2013年1月8日

一、课程设计目的

随着人们的人际关系越来越广泛,想要记住他们的联系方式是一大难题,所以通讯录能够方便的给我们带来所需要的相关信息。然而像以前的记事本,电话薄已经无法满足我们的需求。现在计算机越来月普及,所以一个通讯录管理系统很好的满足了用户的需求。直接可以通过电脑的通讯录来查询联系人信息,可以脱离那繁琐的记事本。通讯录管理系统能给用户带来很大的方便。

通讯录管理系统是一个用户用来存储联系方式的管理系统,它方便了用户对联系人的个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。

二、课程设计正文 2.1 设计题目

通讯录管理系统

2.2 设计思路

通讯录管理系统功能需求分析:

1、通讯录管理系统主要功能分为七个模块:用户登录、密码修改、显示全部、用户查询、添加记录、修改记录、删除记录。

2、用户登录与密码修改:实现用户登录通讯录后可以修改密码已实现信息的安全性。

3、显示全部:实现用户对所有在数据库中的数据的显示,方便用户了解数据存储的情况。

4、添加联系人:实现用户添加一条完整的记录,包括姓名、生日、电话、QQ、地址。

5、查找联系人:支持模糊查找和精确查找,实现用户在本软件数据库中查找自己需要的数据功能。

6、修改信息:用户对数据库中已存在的记录进行修改,然后保存已经修改过的数据

7、删除信息:用户对数据库中已经存在的记录进行行删除操作,然后保存修改过的数据

2.3运行界面需求

界面应简洁,使用者易操作

2.4开发及运行环境

本系统开发平台及运行环境如下:

系统开发平台:Microsoft Visual Studio 2010 系统开发语言:C#

运行环境:Microsoft.NET Framework SDK v2.0

三、模块分析及设计 3.1系统数据结构图如图1

图1

3.2系统功能结构图如图2

图2

3.3、系统数据流程图

登录窗口流程图

修改密码流程图

添加信息流程图

修改与删除的流程图

四、数据库设计 4.1数据库需求分析

针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细的调研和分析,总结出如下的需求信息:

1. 每条原始记录要有姓名、生日、电话、QQ、地址,其中姓名不能为空。 2. 保证查询到的数据与姓名相一致 3. 根据相应姓名删除对应的全部数据

4.2 数据表设计

数据库名称:xlw,共有2个表: 1、用户表(UserName)2、通讯录信息表(information)

4.2.1用户登录信息表

4.2.2通讯录信息表

五、制作过程及要点 5.1、登录窗口界面如图

主要代码实现如下:

namespace xlw {

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

public static string UserName = null;

private void button2_Click(object sender, EventArgs e) {

string connString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(connString); conn.Open();

string sql = "select*from 登录表 where UserName='" +

txtUsername.Text.Trim().ToLower() + "'and UserPwd='" + txtPassword.Text.Trim() + "'"; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) {

UserName = dr["UserName"].ToString(); FrmMain1 frm = new FrmMain1(); frm.Show(); this.Hide(); } else {

MessageBox.Show("用户名或密码错误", "出错了", MessageBoxButtons.OK, MessageBoxIcon.Error); } }

private void txtUsername_TextChanged(object sender, EventArgs e) { }

private void button1_Click(object sender, EventArgs e) {

Form1 frm = new Form1 (); frm.Show(); this.Hide(); }

private void txtUsername_MouseHover(object sender, EventArgs e) {

txtUsername.Focus(); }

private void txtPassword_MouseHover(object sender, EventArgs e) {

txtPassword.Focus(); }

private void txtUsername_KeyPress(object sender, KeyPressEventArgs e) {

if (e.KeyChar == (char)13) {

txtPassword.Focus(); } }

private void Form1_Load(object sender, EventArgs e) {

button1.Image = imageList1.Images[0]; button2.Image = imageList1.Images[1]; }}}

5.2系统主界面设计

5.2.1主界面运行截图如下:

5.2.2通讯录“修改密码”界面截图如下:

主要代码如下:

namespace xlw {

public partial class Form2 : Form {

public Form2() {

InitializeComponent(); }

private void Form2_Load(object sender, EventArgs e)

{

button1.Image = imageList1.Images[0]; button2.Image = imageList1.Images[1];

}

private void button1_Click(object sender, EventArgs e) {

if (txtNewpwd.Text.Trim() == txtNewpwdagain.Text.Trim()) {

string connString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(connString); conn.Open();

string sqlCheckPwd = "select count(*)from 登录表where

UserName='"+Form1.UserName +"'and UserPwd='" + txtOldpwd .Text .Trim () + "'"; SqlCommand cmdCheckPwd = new SqlCommand(sqlCheckPwd, conn); int j = (int)cmdCheckPwd.ExecuteScalar(); if (j == 1) {

string sql = "update 登录表set UserPwd='" + txtNewpwd.Text.Trim() + "'where UserName='" + Form1.UserName + "'";

SqlCommand cmd =new SqlCommand(sql, conn); int i = cmd.ExecuteNonQuery(); if (i == 1) {

MessageBox.Show("密码修改成功!"); } else {

MessageBox.Show("密码修改失败!");

} } else

{ MessageBox.Show("输入的旧密码不正确!"); }

conn.Close(); } else

{ MessageBox.Show("两次新密码不一致!"); } }

private void button2_Click(object sender, EventArgs e) {

txtOldpwd.Text = ""; txtNewpwd.Text = ""; txtNewpwdagain .Text = ""; } } }

5.2.3、用户添加模块

用户进入通讯录系统主界面,点击添加,进行通讯录的添加操作,填写相应的内容。

相关运行界面如下:

相关代码如下

namespace xlw {

public partial class Form3 : Form

{

public Form3()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

string connString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated

Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(connString);

conn.Open();

if (txtName.Text.Trim().Length != 0)

{

string sql = "insert into

information(UserName,UserBirthday,UserTelphone,UserNumber,UserAddress,PictureBox) Values('" + txtName.Text.Trim() + "','" + txtBirthday.Text + "','" + txtTelphone.Text + "','" + txtNumber.Text + "','" + txtAddress.Text + "','" + textBox1.Text.Trim() + "')";

SqlCommand cmd = new SqlCommand(sql, conn);

int j = cmd.ExecuteNonQuery();

if (j == 1)

{

MessageBox.Show("添加成功");

}

else

{

MessageBox.Show("添加失败");

}

}

else

{

MessageBox.Show("姓名不能为空!");

}

this.Hide();

conn.Close();

}

private void pictureBox1_Click(object sender, EventArgs e)

{

}

private void button2_Click(object sender, EventArgs e)

{

FrmMain1 frm = new FrmMain1 ();

this.Hide();

}

//public string photoadress = @"c:\001.jpg";

private void button3_Click(object sender, EventArgs e)

{

using (OpenFileDialog lvse = new OpenFileDialog())

{

lvse.Title = "选择图片"; lvse.InitialDirectory = "";

lvse.Filter = "图片文件|*.bmp;*.jpg;*.jpeg;*.gif;*.png"; lvse.FilterIndex = 1; if (lvse.ShowDialog() == DialogResult.OK)

{

pictureBox1.Image = Image.FromFile(lvse.FileName);

textBox1.Text = lvse.FileName;

}

}

}

private void Form3_Load(object sender, EventArgs e)

{

}

private void txtName_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)13)

{

txtBirthday.Focus();

}

}

private void txtBirthday_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)13)

{

txtTelphone.Focus();

}

}

private void txtTelphone_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)13)

{

txtNumber.Focus();

}

}

private void txtNumber_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)13)

{

txtAddress.Focus();

}

}

private void button4_Click(object sender, EventArgs e)

{

FrmMain1 frm = new FrmMain1();

frm.Show();

this.Close();

}

5.2.4显示全部模块

用户进入编辑界面之后,点击显示全部按钮,则系统将数据库中数存储的所有联系人的记录显示到dataGridView1界面中,按照一定的规格排列。其中各项中的数据则严格按照数据库中的要求排列显示。

显示全部功能截图如下:

实现的代码如下

private void button4_Click(object sender, EventArgs e)

{

string ConnString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated

Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(ConnString);

conn.Open();

string sql = "select UserName as 姓名,UserBirthday as 生日,UserTelphone as 电话,UserNumber as QQ,UserAddress as 地址,PictureBox from information ";

SqlDataAdapter da = new SqlDataAdapter(sql, conn);

SqlCommand cmd = new SqlCommand(sql, conn);

DataSet ds = new DataSet();

da.Fill(ds);

this.dataGridView1.DataSource = ds.Tables[0].DefaultView;

}

5.2.5 修改界面模块

截图如下:

实现的代码如下:

private void button1_Click(object sender, EventArgs e)

{

SqlCommandBuilder cb = new SqlCommandBuilder(da);

da.Update(ds);

MessageBox.Show("修改成功!");

}

5.2.6删除界面模块

删除前后比较截图如下:

删除前 删除后

实现删除功能的代码如下:

private void button2_Click(object sender, EventArgs e)

{

DialogResult dlResult = MessageBox.Show(this, "要删除这些信息吗?", "请确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (dlResult == DialogResult.Yes)

{

int j = dataGridView1.SelectedRows.Count;

int[] l = new int[j];

int i;

for (i = 0; i

{

l[i] = dataGridView1.SelectedRows[i].Index;

}

int k = 0;

while (k

{

ds.Tables[0].Rows[l[k]].Delete();

k++;

}

SqlCommandBuilder cb = new SqlCommandBuilder(da);

da.Update(ds);

}

}

5.2.7查询界面模块

查询的截图如下:

实现查询功能的代码如下:

private void button3_Click(object sender, EventArgs e)

{

string ConnString = @"Data

Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\xlw.mdf;Integrated

Security=True;Connect Timeout=30;User Instance=True";

SqlConnection conn = new SqlConnection(ConnString);

conn.Open();

string sql = "select UserName as 姓名,UserBirthday as 生日,UserTelphone as 电话,UserNumber as QQ,UserAddress as 地址,PictureBox from information where UserName like '" +

textBox1.Text.Trim() + "%'";

SqlDataAdapter da = new SqlDataAdapter(sql, conn);

SqlCommand cmd = new SqlCommand(sql, conn);

DataSet ds = new DataSet();

da.Fill(ds);

this.dataGridView1.DataSource = ds.Tables[0].DefaultView;

SqlDataReader dr = cmd.ExecuteReader();

if (dr.Read())

{ if (dr["PictureBox"].ToString().Trim() == "")

{ this.pictureBox1.Visible = false; }

else

{

this.pictureBox1.Visible = true;

string a = dr["PictureBox"].ToString();

this.pictureBox1.Image = Image.FromFile(a);

}

}

}

六、设计总结

通过这次的课程设计,让我好好的检查了一下自己的c#知识和数据库知识,发现了自己有很大的不足,自己的c#知识学的不够扎实,还有之前学的数据库知识也都忘得差不多了,所以这个课程设计做的时候有点吃力,到处碰壁,通过老师的视频演示和同学的帮助下,克服了一个个难题。在操作过程中也遇到了很大的问题,一个可以改个属性就能实现的问题,我却不知道该如何下手,由此可见自己的动手能力是何等的差,不过经过这两周的课程设计,自己的动手能力有了明显的提高,比以前的操作熟练了好多,在调试出错时能很快的发现了自己在哪里出错,让我在这次课程设计中复习了c#的知识,又回顾的数据库相关的知识,使我对VS程序设计有了更深层次的认识和理解,懂得了VS窗体应用程序基本设计流程

这次课程设计老师给我们分了小组,在我这个小组里,我们很好的体现了团结的精神,在一个人遇到难题无法解决的时候,大家都会伸出援助之手,帮助一起解决问题,这样既能帮助别人,自己也能掌握解决这个问题的方法,可谓是两全齐美。

最后,在此由衷的向我的指导老师们表示衷心的感谢,是他们的悉心指导和严格要求,才使我的课程设计有了较为完善的一面,才有了我能力的提高,得到了充分的锻炼。

最后,在此由衷的向我的指导老师们表示衷心的感谢,是他们的悉心指导和严格要求,才使我的课程设计有了较为完善的一面,才有了我能力的提高,得到了充分的锻炼。

七、参考文献

[1] 沃森,内格尔,齐立波,黄静.c#入门经典[5].清华大学出版社,2012,12.

[2] 米凯利斯(Mark Michaelis),周靖.c#本质论[3].人民邮电出版社,2010,09.

[3] 马俊.c#程序设计及应用教程[3]. 人民邮电出版社,2009,05.


相关内容

  • 学生通讯录vb课程设计
  • 沈阳航空航天大学 课程设计任务书 学院:航空航天工程学部 专业:飞行器制造(航维) 班级:14030501 学号:[1**********]21 题目:学生通讯录管理 一.课程设计时间 2012~2013第2学期 第3周,共计1周,20学时. 二.课程设计内容 以VB+Access组合,实现同学通讯 ...

  • C++程序设计_通讯录程序
  • 信息学院课程设计 题 目: 通讯录程序设计 姓 名: _ ___ 学 号: __ __ 班 级: 课 程: C++程序设计 任课教师: 黄超 ____ 2012年5月28日 课程设计任务书及成绩评定 概要 本次课程设计是利用C++做了一个班级通讯录,本次课程设计主要使 用类与对象.数组与指针等方法. ...

  • 通讯录的制作-课程设计报告
  • 中北大学 数 据 结 构 课 程 设 计 说 明 书 2010 年1月6日 1 设计目的: 通讯录的制作 <数据结构>课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论.进行数据 ...

  • 企业通讯录系统
  • 企 业 通 讯 录 系 统 小组成员: 余浩 刘勇 时间: 2015年10月 假设现在你收到老板的指令,要求完成一个员工通讯录,所有员工都可以通过内部网查询这个通讯录.这时你会发现,需求就这么一句话,而这个通讯录系统需要你去完善需求,一切都需要你去构思. 首先,这样的项目就是IT部门的事情,和公司的 ...

  • C语言编写通讯录
  • 注:本程序适用于大学程序设计课程的通讯录编写.程序没有问题可以运行但其中读取功能未编写,最终得分能在80分左右.下面是一些主要内容. 一. 课程设计目的 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完<程序设计语言>课程后进行的一次全面的综合练习.本课程设计的目的和 ...

  • _110kV变电站通讯系统设计
  • 科技资讯 SCIENCE & TECHNOLOGY INFORMATION 动力与电气工程 110kV 变电站通讯系统设计 陈赞 (河南省安阳市鑫龙煤业(集团) 有限责任公司电管处 河南安阳 455133) 摘 要:随着科技的进步以及信息化水平的不断提高, 对于电压等级较低以及以下的配电变电 ...

  • 安卓开发课程设计报告
  • 武汉理工大学华夏学院 课 程 报 告 课程名称:智能手机软件开发 题 目: 基于Android 的手机通讯录的设计与实现 专 业 信息工程系 班 级 学 号 姓 名 成 绩 指导教师 2015年3月23日至2015年6月12日 智能手机软件开发大作业 根据所学的Android 手机开发的知识,采用E ...

  • 2009年小学信息技术优质课一等奖教学设计四上[小小通讯录]
  • 2009年小学信息技术优质课一等奖教学设计<小小通讯录> 作者:张红    信息来源:本站原创    点击数:     更新时间:2010年06月11日 课    题 架起友谊之桥--好友通讯录 教学目标 知识 1.了解表格的基本构成 技能 1.能够通过菜单方式制作基本的二维表格 2.能 ...

  • 学生通讯录管理系统课程设计
  • 数 据 结 构 课 程 设 计 报告 题目: 学生通讯录管理系统课程设计 学 院 信息工程学院 专 业 计算机科学与技术 年级班别 12级4班 学 号 2012051411 学生姓名 潘 小 恩 指导教师 米 文 丽 成 绩 2013年12月19日 目 录 一.总体设计方案 ------------ ...