c#winfrom通讯录管理系统
阅读原文时间:2023年07月08日阅读:1

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

主要实现以下功能

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