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

主要实现以下功能

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

最新文章

  1. JS实现页面进入、返回定位到具体位置
  2. 近期编程问题——epoll failed:bad file descriptor
  3. npm install socket.io遇到的问题
  4. 每日一博 | 用 Ionic2 创建 App 启动页滑动欢迎界面
  5. Ubuntu14.04 Server amd64 配置 Apache+MySQL+Django
  6. IntelliJ IDEA优化总结
  7. 数据仓库之ETL漫谈
  8. linux ls -l 详解
  9. 令人头痛的ExtJS日期时间控件
  10. php parse_url 函数使用方法解析
  11. LINUX 笔记-文件属性相关命令
  12. java并发编程 | 锁详解:AQS,Lock,ReentrantLock,ReentrantReadWriteLock
  13. @property的使用
  14. MinGW GCC 7.1.0 2017年6月份出炉啦
  15. 【sql基础】按照名字分组查询时间最早的一条记录
  16. 聊聊setTimeout和setInterval线程
  17. 【NOIP2014模拟赛No.1】我要的幸福
  18. C# 自定义类型通过实现IFormattable接口,来输出指定的格式和语言文化的字符串(例:DateTime)
  19. Rendering Resources
  20. css3画图那些事(三角形、圆形、梯形等)

热门文章

  1. 高德地图与CAD图叠加显示方法汇总及优缺点分析
  2. Deployment故障排除图解
  3. Java 读写锁 ReadWriteLock 原理与应用场景详解
  4. uni-app 如何优雅的使用权限认证并对本地文件上下起手
  5. PHP cURL抓取网上图片
  6. 安装与配置FTP服务器
  7. Java模拟生产者-消费者问题。生产者不断的往仓库中存放产品,消费者从仓库中消费产品。其中生产者和消费者都可以有若干个。在这里,生产者是一个线程,消费者是一个线程。仓库容量有限,只有库满时生产者不能存
  8. MVVM视图模型
  9. IDEA中设置背景图片(超详细)
  10. 如何清除取消KMS激活