c#winfrom通讯录管理系统
一个简单的通讯录管理系统,适合毕业设计。
主要实现以下功能
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通讯录管理系统的更多相关文章
- iOS学习之Object-C语言简单的通讯录管理系统
用这几天学的OC的知识,写了一个实现简单功能的通讯录管理系统,在这里分享给大家: 通讯录管理系统 * 需求: 1.定义联系人类Contact.实例变量:姓名(拼音,首字母大写).性别.电话号码.住址 ...
- c语言实现通讯录管理系统(c课程设计)
工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号 ...
- c++实现通讯录管理系统(控制台版)
c++实现通讯录管理系统(控制台版) 此项目适合c++初学者,针对c++基础知识,涉及到变量.结构体定义使用.数组定义使用.指针定义使用等. 运行之后的结果如下: 代码: #include <i ...
- C++入门-控制台版的通讯录管理系统
通讯录管理系统 1.系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别 ...
- C++课程设计 通讯录管理系统 原码及解析
设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理. (一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时 ...
- C++通讯录管理系统(添加联系人,显示联系人,删除联系人,查找联系人,修改联系人,清空联系人,退出通讯录)
1 /** 2 * ProjectNmae:通讯录管理系统 3 * 功能: 4 * 添加联系人:向通讯录添加新人 5 * 显示联系人:显示通讯录中的所有联系人信息 6 * 删除联系人:按照姓名进行删除 ...
- c++—通讯录管理系统
一.运用所学的结构体.地址指针等基础知识,完成通讯录管理系统 二.系统主要有以下6个功能: 1.添加联系人2.显示联系人 3.删除联系人 4.查找联系人5.修改联系人 6.清空联系人 1 #inclu ...
- C语言通讯录管理系统
本文转载自:http://blog.csdn.net/hackbuteer1/article/details/6573488 实现了通讯录的录入信息.保存信息.插入.删除.排序.查找.单个显示等功能. ...
- 通讯录管理系统(C语言)
/* * 对通讯录进行插入.删除.排序.查找.单个显示功能 */ #include <stdio.h> #include <malloc.h> #include <str ...
- c++实例之通讯录管理系统之清空联系人功能(七)
#include<iostream> using namespace std; constexpr auto MAX = ; //联系人结构体 struct Person { string ...
随机推荐
- 快Key:按一下鼠标【滚轮】,帮你自动填写用户名密码,快速登录,可制作U盘随身(开源免费-附安装文件和源代码)
* 代码以本文所附下载文件包为准,安装文件和源文件包均在本文尾部可下载. * 快Key及本文所有内容仅供交流使用,使用者责任自负,由快Key对使用者及其相关人员或组织造成的任何损失均由使用者自负,与本 ...
- 萌新码农的第一篇:MarkDown的使用方法
MarkDown的使用方法 使用的编辑软件Typora 1.标题的使用方法 输入''#''然后空格,输入标题名字即可生成标题. 随着''#''的增多,标题的大小会依次减小,最多到六级标题 2.排字 字 ...
- 100个Linux Shell脚本经典案例(附PDF)
转载自:https://mp.weixin.qq.com/s/tCKAM67_7K7q2vJthaIsDQ 原文链接:https://wenku.baidu.com/view/4f089430a116 ...
- 在Kuboard上安装 Ingress Controller
快速安装 # 只在 master 节点执行 kubectl apply -f https://kuboard.cn/install-script/v1.18.x/nginx-ingress.yaml ...
- 「国产系统」Tubian 0.2,兼容Windows和Android的GNU/Linux系统!
0.3版已发布:https://www.cnblogs.com/tubentubentu/p/16733005.html Sourceforge.net主页(提供下载):https://sourcef ...
- 在Linux/redhat中安装amazon-ssm-agent及注意事项
操作系统:Red Hat Enterprise Linux Server release 7.9 (Maipo) 首先说明一下SSM是什么.引用官网的说明: AWS Systems Manager A ...
- 聊聊Linux中CPU上下文切换
目录 什么是CPU上下文 CPU上下文切换 上一任务的CPU上下文保存在哪? 进程上下文切换 内核空间和用户空间 top命令查看CPU资源 系统调用 进程上下文切换 和 系统调用的区别? 进程切换的常 ...
- 追求性能极致:Redis6.0的多线程模型
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...
- 知识图谱实体对齐2:基于GNN嵌入的方法
知识图谱实体对齐2:基于GNN嵌入的方法 1 导引 我们在上一篇博客<知识图谱实体对齐1:基于平移(translation)嵌入的方法>中介绍了如何对基于平移嵌入+对齐损失来完成知识图谱中 ...
- Dubbo2.7详解
Spring与Dubbo整合原理与源码分析 [1]注解@EnableDubbo @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTI ...