以前写的一个手机通讯录管理小程序回忆一下(C#版大牛绕过)致曾经写过的小程序

一  简介

带界面,基于桌面数据库,代码不多,难度也不大,功能也很简单,

就是无意在电脑上发现,怀念一下,呵呵。

2 准备

安装office 2003 access桌面数据库。开发工具vs2010

Friends.mdb放在当前程序执行同一目录。

3 代码

直接展示代码,包括注释和运行界面


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Data.SqlClient;
using System.Data.Sql;
using System.Data.OleDb;

namespace Contact
{
    public partial class MainForm : Form
    {
         string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Friends.mdb";
        private bool isAdd;
        private int Fid;

        public MainForm()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 添加源信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainForm_Load(object sender, EventArgs e)
        {
            this.GetFriendInfo();
        }

        /// <summary>
        /// 从数据库加载所有好友信息
        /// </summary>
        private void GetFriendInfo()
        {
            string sql="select Fid,Fname,Fphone,Faddress,extra from friend";
              OleDbConnection OC = new OleDbConnection(connStr);      
               OC.Open();
                OleDbCommand cmd = new OleDbCommand(sql,OC);
           try
           {
                this.listView.Items.Clear();
               OleDbDataReader reader;
               reader = cmd.ExecuteReader();
               while (reader.Read())
               {
                   string[] subItems = new string[]
                    {
                        reader.GetInt32(0).ToString(),
                        reader.GetString(1),
                        reader.GetString(2),
                        reader.GetString(3),
                        reader.GetString(4)
                    };
                  // ListViewItem it = new ListViewItem();
                   //it.SubItems.AddRange(subItems);
                listView.Items.Add(new ListViewItem(subItems));
               }
               reader.Close();
           }
           catch (SqlException SQLEX)
           {
               MessageBox.Show(SQLEX.ToString());
			   //MessageBox::Show(listView);

           }
        }

        /// <summary>
        /// 取得选中联系人的ID
        /// </summary>
        /// <returns></returns>
        private int getSelectID()
        {
            int result;
            if (this.listView.SelectedItems.Count == 0)
            {
                result = 0;
            }
            else
            {
                ListViewItem temp = this.listView.SelectedItems[this.listView.SelectedItems.Count - 1];
                result = Convert.ToInt32(temp.SubItems[0].Text);
            }
            return result;
        }

        /// <summary>
        /// 使相关控件启用
        /// </summary>
        private void enableInfo()
        {
            this.clearInfo();
            this.txtAddress.Enabled = true;
            this.txtName.Enabled = true;
            this.txtPhone.Enabled = true;
            this.btnOK.Enabled = true;
            this.btnRE.Enabled = true;
            this.txtName.Focus();
        }

        /// <summary>
        /// 修改相关控件状态
        /// </summary>
        private void disableInfo()
        {
            this.clearInfo();
            this.txtAddress.Enabled = false;
            this.txtName.Enabled = false;
            this.txtPhone.Enabled = false;
            this.btnOK.Enabled = false;
            this.btnRE.Enabled = false;
            this.btnAdd.Enabled = true;
            this.btnDel.Enabled = true;
            this.btnEdit.Enabled = true;
        }
        private void clearInfo()
        {
            this.txtName.Text = "";
            this.txtPhone.Text = "";
            this.txtAddress.Text = "";
            this.txtExtra.Text = "";
        }
        /// <summary>
        /// 添加新联系人
        /// </summary>
        /// <param name="_name">姓名</param>
        /// <param name="_phone">电话</param>
        /// <param name="_address">地址</param>
        public void addInfo(string _name, string _phone, string _address,string _extra)
        {
            //可以使用Command Parameter来构造sql语句以获得更好的效率和更高的安全性
            string sql = "insert into friend (Fname,Fphone,Faddress,extra) values ('";
            sql += _name + "','" + _phone + "','" + _address + "','" + _extra + "')";
            OleDbConnection OC = new OleDbConnection(connStr);
            OleDbCommand cmd = new OleDbCommand(sql,OC);
            //SqlConnection conn = new SqlConnection(connStr);
            //SqlCommand cmd = new SqlCommand(sql, conn);
             OC.Open();
            cmd.ExecuteNonQuery();
            OC.Close();
        }
        /// <summary>
        /// 修改联系人信息
        /// </summary>
        /// <param name="_id">需要修改的联系人的id</param>
        /// <param name="_name"></param>
        /// <param name="_phone"></param>
        /// <param name="_address"></param>
        public void changeInfo(int _id, string _name, string _phone, string _address,string str_extra)
        {
            string sql = "update friend set Fname = '" + _name + "',Fphone = '" + _phone + "', Faddress = '" + _address + "',extra = '" + str_extra + "'";
            sql += " where Fid = " + _id;
            SqlConnection conn = new SqlConnection(connStr);
            SqlCommand cmd = new SqlCommand(sql, conn);
            OleDbConnection OC = new OleDbConnection(connStr);
            OleDbCommand cmd = new OleDbCommand(sql, OC);
           
            OC.Open();
            cmd.ExecuteNonQuery();
            OC.Close();
        }
        /// <summary>
        /// 添加联系人
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAdd_Click(object sender, EventArgs e)
        {
            this.enableInfo();
            this.btnEdit.Enabled = false;
            this.btnDel.Enabled = false;
            this.isAdd = true;
        }
        /// <summary>
        ///修改联系人信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnEdit_Click(object sender, EventArgs e)
        {
            if (this.listView.SelectedItems.Count == 0)
            {
                MessageBox.Show("请点击选择需要修改的联系人!");
                return;
            }
            this.enableInfo();
            ListViewItem lvi = this.listView.SelectedItems[this.listView.SelectedItems.Count - 1];
            this.txtName.Text = lvi.SubItems[1].Text;
            this.txtPhone.Text = lvi.SubItems[2].Text;
            this.txtAddress.Text = lvi.SubItems[3].Text;
            this.txtExtra.Text = lvi.SubItems[4].Text;
            Fid = Convert.ToInt32(lvi.SubItems[0].Text);
            this.isAdd = false;
            this.btnDel.Enabled = false;
            this.btnAdd.Enabled = false;
        }
        /// <summary>
        /// 删除联系人信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDel_Click(object sender, EventArgs e)
        {
            int infoID = this.getSelectID();
            if (infoID == 0)
            {
                MessageBox.Show("请选中你要删除的那些内容信息!");
                return;
            }
            try
            {
                string sql = "delete friend where Fid = " + infoID;
                //SqlConnection conn = new SqlConnection(connStr);
                //conn.Open();
                //SqlCommand cmd = new SqlCommand(sql, conn);
                //cmd.ExecuteNonQuery();
                //conn.Close();
                OleDbConnection OC = new OleDbConnection(connStr);
                OleDbCommand cmd = new OleDbCommand(sql, OC);

                OC.Open();
                cmd.ExecuteNonQuery();
                OC.Close();
                this.GetFriendInfo();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        /// 本软件版本信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAbout_Click(object sender, EventArgs e)
        {
            MessageBox.Show("个人手机通讯录,仅用于演示。\n\n    CopyRight CODE", "演示程序", 
                MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        /// <summary>
        /// 取消按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnRE_Click(object sender, EventArgs e)
        {
            this.disableInfo();
        }
        /// <summary>
        /// 确定按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOK_Click(object sender, EventArgs e)
        {
            //在执行下面的操作之前你可以对用户提交的信息进行合法验证
            //不合法的数据应该拒绝操作
            if (this.isAdd)
            {
                try
                {
                    addInfo(this.txtName.Text, this.txtPhone.Text, this.txtAddress.Text,this.txtExtra.Text);
                    MessageBox.Show("成功添加联系人。");
                    this.GetFriendInfo();
                    this.disableInfo();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                try
                {
                    changeInfo(Fid, this.txtName.Text, this.txtPhone.Text, this.txtAddress.Text,this.txtExtra.Text);
                    MessageBox.Show("成功修改联系人信息。");
                    this.GetFriendInfo();
                    this.disableInfo();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

       

       
    }
}

运行界面(不怎么友好)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值