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

来源:互联网 发布:系统优化级别选哪个好 编辑:程序博客网 时间:2024/04/29 05:15

一  简介

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

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

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);                }            }        }                  }}

运行界面(不怎么友好)