一个简单的通讯录管理系统,适合毕业设计。

主要实现以下功能

1.系统登录

2.增加联系人

3.修改和删除联系人

4.查找联系人

5.系统用户管理

首先先搭建数据库。

我这边使用的版本是sqlserver2014

创建两个表一个是用户表。另外一个是联系人表

用户表包含了用户名,用户密码,联系人最大值,组别最大值代码如下

CREATE TABLE Users
(
UserName VARCHAR(50),--用户名
Password VARCHAR(50),--用户密码
ContactMax INT,
GroupMax INT
)

然后创建联系人表格包含了基本的信息,其中id的PRIMARY KEY设置为主键,IDENTITY(1,1)设置为自动增长,代码如下

CREATE TABLE Contacts
(
Id INT PRIMARY KEY IDENTITY(1,1),
UserName VARCHAR(50),
Groups VARCHAR(50),
Name VARCHAR(50),
WorkUnit VARCHAR(200),
Phone VARCHAR(200),
Email VARCHAR(200),
Photo IMAGE
)

还需要插入一条管理员账号。这样子就可以使用这个账号进行登录

INSERT INTO dbo.Users
( UserName ,
Password ,
ContactMax ,
GroupMax
)
VALUES ( 'admin' , -- UserName - varchar(50)
'' , -- Password - varchar(50)
10, -- ContactMax - int
10 -- GroupMax - int
)

好了数据库就已经搭建好了那么就可以开始编写程序呢

编写winfrom代码

1.创建一个登录界面frmLogin和一个主界面frmMain

2.创建一个数据库帮助类Sqlhelp用来实现数据库操作代码如下

public static class SqlHelp
{
static string sqlconn = "server=.;DataBase=addressbook;Integrated Security =true;enlist=false";
/// <summary>
/// 根据sql语句获得数据库第一行第一列
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql)
{
SqlConnection conn = new SqlConnection(sqlconn);
SqlCommand cmd = new SqlCommand(sql,conn);
conn.Open();
object o = cmd.ExecuteScalar();
conn.Close();
return o;
}
/// <summary>
/// 根据sql语句返回受影响的行数
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql)
{
SqlConnection conn = new SqlConnection(sqlconn);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
int o = cmd.ExecuteNonQuery();
conn.Close();
return o;
}
/// <summary>
/// 根据sql语句返回受影响的行数
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataTable GetDataTable(string sql)
{
SqlConnection conn = new SqlConnection(sqlconn);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(dt);
conn.Close();
return dt;
}
}

3.在创建好的登录窗口上拖放控件实现用户名和密码以及登录按钮

点击登录按钮的时候执行sql语句查询账号和密码是否正确

/// <summary>
/// 登录按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
if (txtUser.Text == "")
{
MessageBox.Show("请输入用户名");
}
else
{
//判断账号和密码是否正确
string sql = "select count(1) from Users where UserName='" + txtUser.Text + "' and PassWord='" + txtPwd.Text + "'";
if (Convert.ToInt32(SqlHelp.ExecuteScalar(sql)) > 0)
{
frmMain.User = txtUser.Text;
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.Show("用户名或者密码错误");
}
}
}

this.DialogResult=DialogResult.OK是将登录窗体的返回值定义为OK

返回成功之后那么就要打开主界面了。

4.修改Program类实现登录成功打开主窗体

 /// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmLogin frm = new frmLogin();
frm.ShowDialog();
if (frm.DialogResult == DialogResult.OK)
{
Application.Run(new frmMain());
}
}

5.在主界面上增加菜单栏。以及两个listview

c#winfrom通讯录管理系统的更多相关文章

  1. iOS学习之Object-C语言简单的通讯录管理系统

    用这几天学的OC的知识,写了一个实现简单功能的通讯录管理系统,在这里分享给大家: 通讯录管理系统 *  需求: 1.定义联系人类Contact.实例变量:姓名(拼音,首字母大写).性别.电话号码.住址 ...

  2. c语言实现通讯录管理系统(c课程设计)

    工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号 ...

  3. c++实现通讯录管理系统(控制台版)

    c++实现通讯录管理系统(控制台版) 此项目适合c++初学者,针对c++基础知识,涉及到变量.结构体定义使用.数组定义使用.指针定义使用等. 运行之后的结果如下: 代码: #include <i ...

  4. C++入门-控制台版的通讯录管理系统

    通讯录管理系统 1.系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别 ...

  5. C++课程设计 通讯录管理系统 原码及解析

    设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理. (一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时 ...

  6. C++通讯录管理系统(添加联系人,显示联系人,删除联系人,查找联系人,修改联系人,清空联系人,退出通讯录)

    1 /** 2 * ProjectNmae:通讯录管理系统 3 * 功能: 4 * 添加联系人:向通讯录添加新人 5 * 显示联系人:显示通讯录中的所有联系人信息 6 * 删除联系人:按照姓名进行删除 ...

  7. c++—通讯录管理系统

    一.运用所学的结构体.地址指针等基础知识,完成通讯录管理系统 二.系统主要有以下6个功能: 1.添加联系人2.显示联系人 3.删除联系人 4.查找联系人5.修改联系人 6.清空联系人 1 #inclu ...

  8. C语言通讯录管理系统

    本文转载自:http://blog.csdn.net/hackbuteer1/article/details/6573488 实现了通讯录的录入信息.保存信息.插入.删除.排序.查找.单个显示等功能. ...

  9. 通讯录管理系统(C语言)

    /* * 对通讯录进行插入.删除.排序.查找.单个显示功能 */ #include <stdio.h> #include <malloc.h> #include <str ...

  10. c++实例之通讯录管理系统之清空联系人功能(七)

    #include<iostream> using namespace std; constexpr auto MAX = ; //联系人结构体 struct Person { string ...

随机推荐

  1. 微服务系列之网关(二) konga配置操作

    1.konga核心对象 Kong 的四大核心对象:upstream,target,service,route.下面分别说: (1)upstream,字面意思上游,实际项目理解是对某一个服务的一个或者多 ...

  2. Ros入门21讲

    一.ROS是什么? ROS=通信机制+开发工具+应用功能+生态系统 目的:提高机器人研发中的软件复用率. 1.ROS中的通信机制 松耦合分布式通信: 注意:什么是耦合.紧耦合.松耦合? 1.1 耦合 ...

  3. [开源]React/Vue通用的状态管理框架,不好用你来打我👀

    为了防止被打,有请"燕双鹰"镇楼️‍♀️️‍️‍...o... 话说新冠3年,"状态管理框架"豪杰并起.群雄逐鹿,ReduxToolkit.Mobx.Vuex. ...

  4. Java开发学习(三十三)----Maven私服(一)私服简介安装与私服分类

    一.私服简介 团队开发现状分析 (1)张三负责ssm_crm的开发,自己写了一个ssm_pojo模块,要想使用直接将ssm_pojo安装到本地仓库即可 (2)李四负责ssm_order的开发,需要用到 ...

  5. 利用高级组策略管理AGPM复制组策略GPO

    有时候管理多个林,在一个林中配置了GPO之后,想复制出来用到其它林里.默认系统的组策略管理里没有这个功能.但是微软在微软企业桌面优化套件Microsoft Desktop Optimization P ...

  6. 重学Java泛型

    一丶从字节码层面看范型擦除 public class Type1<T> { private T t; } 使用jclasslib插件查看其字节码: 可以看到 t属性的类型是List< ...

  7. Elasticsearch from/size-浅分页查询-深分页 scroll-深分页search_after深度查询区别使用及应用场景

    Elasticsearch调研深度查询 1.from/size 浅分页查询 一般的分页需求我们可以使用from和size的方式实现,但是这种的分页方式在深分页的场景下应该是避免使用的.深分页的页次增加 ...

  8. vue通过插件实现PDF生成以及下载

    第一步: 安装插件 npm install --save html2canvas //将html转换成图片 npm install jspdf --save //将图片生成pdf 第二步: 在需要的地 ...

  9. PAT (Basic Level) Practice 1030 完美数列 分数 25

    给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. 输入格 ...

  10. Tubian0.42

    0.43已发布:https://www.cnblogs.com/tubentubentu/p/16746748.html Sourceforge.net下载:https://sourceforge.n ...