zoukankan      html  css  js  c++  java
  • 电话本管理程序(实现增删改查功能)

    由于刚开始学习ADO.NET在Winform上的应用,所以程序编写过程中出现了好多的问题。但是现在问题基本上都解决了,所以今天把代码放上来,给想我这样的初学者们一个思路的提示。用到的控件有:TextBox,ComboBox,button,DataGridView

    首先,先放上程序运行后的截图:

    上代码:

    首先还是APP.config文件,这个文件的作用是连接字符串的时候使用,方便了以后的修改 PS:记得添加引用和命名空间,不会的看我上一篇文章

    1 <?xml version="1.0" encoding="utf-8" ?>
    2 <configuration>
    3     <connectionStrings>
    4         <add name="connStr" connectionString="Data Source=ZIP-CW\MSSQLSERVER0;Initial Catalog=PhoneNumManager;Integrated Security=True"/>
    5     </connectionStrings>
    6 </configuration>

    然后是Group类,这个类的作用是用在ComboBox选择某项的时候可以获得这项的Id号

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace PhoneBook
     7 {
     8     class Group
     9     {
    10         private string pId;
    11 
    12         public string PId
    13         {
    14             get { return pId; }
    15             set { pId = value; }
    16         }
    17         private string ptName;
    18 
    19         public string PtName
    20         {
    21             get { return ptName; }
    22             set { ptName = value; }
    23         }
    24 
    25         public override string ToString()
    26         {
    27             return ptName;
    28         }
    29     }
    30 }

    最后就是整个程序主要的代码了

      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Windows.Forms;
      9 using System.Configuration;
     10 using System.Data.SqlClient;
     11 
     12 namespace PhoneBook
     13 {
     14     public partial class Form1 : Form
     15     {
     16         public Form1()
     17         {
     18             InitializeComponent();
     19         }
     20         
     21         //连接字符串
     22         string conStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
     23 
     24         private void Form1_Load(object sender, EventArgs e)
     25         {
     26             string sql = "select * from [PhoneNum]";
     27             GetPhoneNum(sql);
     28             LoadCbo();
     29             
     30         }
     31 
     32         /// <summary>
     33         /// 执行查询数据库功能的方法
     34         /// </summary>
     35         /// <param name="sql">查询数据库的语句</param>
     36         private void GetPhoneNum(string sql)
     37         {
     38             using (SqlConnection conn = new SqlConnection(conStr))
     39             {
     40                 DataSet ds = new DataSet();
     41                 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); //用于查询数据库,并填充DataSet集;创建DataAdapter数据适配器实例
     42                 sda.Fill(ds);   //填充DataSet集
     43                 dgvPhoneBook.DataSource = ds.Tables[0];
     44             }
     45         }
     46 
     47         /// <summary>
     48         /// 获得执行的SQL语句的方法
     49         /// </summary>
     50         /// <returns>返回拼接好的SQL语句</returns>
     51         private string GetString()
     52         {
     53             //为了简单和易读性的考虑,使用where 1=1
     54             StringBuilder sql = new StringBuilder("select * from [PhoneNum] where 1=1 ");
     55             if (txtName.Text != "")
     56             {
     57                 sql.AppendLine(" and pName like '%" + txtName.Text.Trim() + "%'");
     58             }
     59            
     60             if (txtPhoneNumber.Text != "")
     61             {
     62                 sql.AppendLine(" and pCellPhone like '%" + txtPhoneNumber.Text.Trim() + "%'");
     63             }
     64             //类型转换
     65             Group group = cboGroup.SelectedItem as Group;
     66             if (cboGroup.SelectedItem != null)
     67             {
     68                 if (group.PId == "1")
     69                 {
     70                     sql.AppendLine(" and pTypeId=1");                   
     71                 }
     72                 else if (group.PId == "2")
     73                 {
     74                     sql.AppendLine(" and pTypeId=2");                    
     75                 }
     76                 else if (group.PId == "3")
     77                 {                
     78                     sql.AppendLine(" and pTypeId=3");                    
     79                 }
     80                 else if (group.PId == "4")
     81                 {                  
     82                     sql.AppendLine(" and pTypeId=4");                    
     83                 }               
     84                 
     85             }
     86             return sql.ToString();
     87         }
     88         //查询按钮的响应
     89         private void btnSearch_Click(object sender, EventArgs e)
     90         {            
     91             GetPhoneNum(GetString());
     92         }        
     93         //combox下拉列表选择的事件响应
     94         private void cboGroup_SelectedIndexChanged(object sender, EventArgs e)
     95         {          
     96             GetPhoneNum(GetString());           
     97         }        
     98         //加载Combox
     99         private void LoadCbo()
    100         {
    101             Group group = new Group();
    102             group.PtName = "全部";
    103             group.PId = "0";
    104             cboGroup.Items.Add(group);
    105             cboAddGroup.Items.Add(group);
    106 
    107             Group group1 = new Group();
    108             group1.PtName = "朋友";
    109             group1.PId = "1";
    110             cboGroup.Items.Add(group1);
    111             cboAddGroup.Items.Add(group1);
    112 
    113             Group group2 = new Group();
    114             group2.PtName = "同事";
    115             group2.PId = "2";
    116             cboGroup.Items.Add(group2);
    117             cboAddGroup.Items.Add(group2);
    118 
    119             Group group3 = new Group();
    120             group3.PtName = "同学";
    121             group3.PId = "3";
    122             cboGroup.Items.Add(group3);
    123             cboAddGroup.Items.Add(group3);
    124 
    125             Group group4 = new Group();
    126             group4.PtName = "家人";
    127             group4.PId = "4";
    128             cboGroup.Items.Add(group4);
    129             cboAddGroup.Items.Add(group4);
    130         }
    131 
    132         /// <summary>
    133         /// 执行增删改的操作
    134         /// </summary>
    135         private void BindDgv()
    136         {
    137             string sql = "select * from [PhoneNum] order by pId desc";
    138             using (SqlConnection conn = new SqlConnection(conStr))
    139             {
    140                 DataTable dt = new DataTable();
    141                 SqlDataAdapter sda = new SqlDataAdapter(sql,conn);
    142                 sda.Fill(dt);
    143                 dgvPhoneBook.DataSource = dt;
    144             }
    145         }      
    146 
    147         //加载增删改部分的combox
    148         private void LoadAddCbo()
    149         {
    150             Group group = new Group();
    151             group.PtName = "全部";
    152             group.PId = "0";
    153             cboAddGroup.Items.Add(group);
    154 
    155             Group group1 = new Group();
    156             group1.PtName = "朋友";
    157             group1.PId = "1";
    158             cboAddGroup.Items.Add(group1);
    159 
    160             Group group2 = new Group();
    161             group2.PtName = "同事";
    162             group2.PId = "2";
    163             cboAddGroup.Items.Add(group2);
    164 
    165             Group group3 = new Group();
    166             group3.PtName = "同学";
    167             group3.PId = "3";
    168             cboAddGroup.Items.Add(group3);
    169 
    170             Group group4 = new Group();
    171             group4.PtName = "家人";
    172             group4.PId = "4";
    173             cboAddGroup.Items.Add(group4);
    174         }
    175 
    176         /// <summary>
    177         /// 增加新的数据行
    178         /// </summary>
    179         /// <param name="sender"></param>
    180         /// <param name="e"></param>
    181         private void btnAdd_Click(object sender, EventArgs e)
    182         {
    183             Group group = cboAddGroup.SelectedItem as Group;
    184             string sql = string.Format("insert into [PhoneNum](pTypeId, pName, pCellPhone, pHomePhone) values({0},'{1}','{2}','{3}')", group.PId, txtAddName.Text, txtAddPhoneNumber.Text, txtAddHomeNum.Text);
    185             GetMethod(sql);
    186         }
    187 
    188         /// <summary>
    189         /// 执行增删改数据库的方法
    190         /// </summary>
    191         /// <param name="sql">要执行的SQL语句</param>
    192         private void GetMethod(string sql)
    193         {
    194             using (SqlConnection conn = new SqlConnection(conStr))
    195             {
    196                 using (SqlCommand cmd = new SqlCommand(sql, conn))
    197                 {
    198                     conn.Open();
    199                     cmd.ExecuteNonQuery();
    200                     BindDgv();
    201                 }
    202             }
    203         }
    204 
    205         /// <summary>
    206         /// 删除选中的数据行
    207         /// </summary>
    208         /// <param name="sender"></param>
    209         /// <param name="e"></param>
    210         private void btnDel_Click(object sender, EventArgs e)
    211         {
    212             int index = 0;
    213             string sql = string.Format("delete from [PhoneNum] where pId={0}",dgvPhoneBook[index,dgvPhoneBook.SelectedCells[0].RowIndex].Value);
    214             GetMethod(sql);
    215         }
    216 
    217         /// <summary>
    218         /// 修改选中的数据行
    219         /// </summary>
    220         /// <param name="sender"></param>
    221         /// <param name="e"></param>
    222         private void btnChange_Click(object sender, EventArgs e)
    223         {
    224             int index = 0;
    225             Group group = cboAddGroup.SelectedItem as Group;
    226             string sql = string.Format("update [PhoneNum] set pTypeId={0},pName='{1}',pCellPhone='{2}',pHomePhone='{3}' where pId={4}", group.PId, txtAddName.Text, txtAddPhoneNumber.Text, txtAddHomeNum.Text, dgvPhoneBook[index, dgvPhoneBook.SelectedCells[0].RowIndex].Value);
    227             GetMethod(sql);
    228         }
    229 
    230       
    231 
    232         
    233     }
    234 }

    代码写的比较乱,希望大家能看懂

  • 相关阅读:
    Windows故障恢复控制台使用方法
    Windows XP SP2下安装WinCC V6.0 SP3 的安装步骤
    Windows Server2003 安装WinCC6.2 sp2
    pb6.5不兼容Oracle10g
    Windows Server 2003 Sp2 雨林木风版
    移动硬盘WINPE启动盘安装GHOST系统图解
    Vista硬盘安装详细图解
    系统的层次性与单一职责原则
    用dynamic增强C#泛型表达力
    谈单元测试的状态验证和行为验证
  • 原文地址:https://www.cnblogs.com/daban/p/2636430.html
Copyright © 2011-2022 走看看