电话本管理程序(实现增删改查功能)

由于刚开始学习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 }

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

你可能感兴趣的:(增删改查)