简单员工管理实例
数据库设计视图:
窗体界面设计:
实例展示:
全部代码(含注释,本例只是练手,有很多功能可以去扩展,比如说将数据导入、导出等)
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Data.SqlClient; 6 using System.Drawing; 7 using System.Linq; 8 using System.Text; 9 using System.Windows.Forms; 10 11 namespace StaffManagement 12 { 13 public partial class Form1 : Form 14 { 15 //公有字段 16 //public static string str = ""; 17 //此处定义静态数据库连接字符串,方便后面调用 18 public static string strConn = "Server=(local);Database=db_Staff;Integrated Security=true"; 19 public Form1() 20 { 21 InitializeComponent(); 22 } 23 24 private void Form1_Load(object sender, EventArgs e) 25 { 26 //启动窗体时自动调用Showinf()方法 27 Showinf(); 28 } 29 //及时将数据返回到DataGridView窗口 30 private void Showinf() 31 { 32 using (SqlConnection con = new SqlConnection(strConn)) 33 { 34 DataTable dt = new DataTable(); 35 //使用SqlDataAdapter提交查询命令 36 SqlDataAdapter da = new SqlDataAdapter("select * from 员工表 order by 员工编号", con); 37 //将查询结果数据集提交到数据库中 38 da.Fill(dt); 39 //同时将数据在DataGridView中更新 40 this.dataGridView1.DataSource = dt.DefaultView; 41 } 42 } 43 /// <summary> 44 /// 在控件中填充选中的DataGridView控件的数据 45 /// </summary> 46 //private void FillControls() 47 //{ 48 // try 49 // { 50 // this.txtNo.Text = this.dataGridView1[0, this.dataGridView1.CurrentCell.RowIndex].Value.ToString(); 51 // this.txtName.Text = this.dataGridView1[1, this.dataGridView1.CurrentCell.RowIndex].Value.ToString(); 52 // this.txtSalary.Text=this.dataGridView1[2,this.dataGridView1.CurrentCell.RowIndex].Value.ToString(); 53 // this.txtEstimate.Text=this.dataGridView1[3,this.dataGridView1.CurrentCell.RowIndex].Value.ToString(); 54 // } 55 // catch { } 56 //} 57 private void ClearTxt() 58 { 59 this.txtNo.Text = null; 60 this.txtName.Text = null; 61 this.txtSalary.Text = null; 62 this.txtEstimate.Text = null; 63 } 64 /// <summary> 65 /// 添加记录 66 /// </summary> 67 /// <param name="sender"></param> 68 /// <param name="e"></param> 69 private void btnAdd_Click(object sender, EventArgs e) 70 { 71 if (this.txtNo.Text == "") 72 { 73 MessageBox.Show("员工编号不能为空!"); 74 return; 75 } 76 if (this.txtName.Text == "") 77 { 78 MessageBox.Show("员工姓名不能为空!"); 79 return; 80 } 81 if (this.txtSalary.Text == "") 82 { 83 MessageBox.Show("基本工资不能为空!"); 84 } 85 if (this.txtEstimate.Text == "") 86 { 87 MessageBox.Show("员工评价不能为空!"); 88 } 89 using (SqlConnection con = new SqlConnection(strConn)) 90 { 91 //首先判断连接是否存在 92 if (con.State == ConnectionState.Closed) 93 { 94 con.Open(); 95 } 96 try 97 { 98 StringBuilder strSQL = new StringBuilder(); 99 strSQL.Append("insert into 员工表(员工编号,员工姓名,基本工资,工作评价)"); 100 strSQL.Append("values('"+this.txtNo.Text.Trim().ToString()+"','"+ 101 this.txtName.Text.Trim().ToString()+"',"); 102 strSQL.Append("'" + Convert.ToSingle(this.txtSalary.Text.Trim().ToString())+"','"+ 103 this.txtEstimate.Text.Trim().ToString()+"')"); 104 105 using (SqlCommand cmd = new SqlCommand(strSQL.ToString(), con)) 106 { 107 cmd.ExecuteNonQuery(); 108 MessageBox.Show("信息增加成功!"); 109 } 110 //清空插入的代码 111 // strSQL.Remove(0,strSQL.Length); 112 } 113 catch(Exception ex) 114 { 115 MessageBox.Show("错误:"+ex.Message,"错误提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error); 116 } 117 //不论是否发生异常都会执行finally中的语句,关闭连接。 118 finally 119 { 120 if(con.State==ConnectionState.Open) 121 { 122 con.Close(); 123 con.Dispose(); 124 } 125 Showinf(); 126 ClearTxt(); 127 } 128 } 129 } 130 131 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 132 { 133 //str = this.dataGridView1.SelectedCells[0].Value.ToString(); 134 } 135 /// <summary> 136 /// 更新操作 137 /// </summary> 138 /// <param name="sender"></param> 139 /// <param name="e"></param> 140 private void btnUpdate_Click(object sender, EventArgs e) 141 { 142 using(SqlConnection con=new SqlConnection(strConn)) 143 { 144 if (this.txtNo.Text.ToString() != null) 145 { 146 string str_condition = ""; 147 string str_cmdtxt = ""; 148 //记录员工编号 149 str_condition = this.dataGridView1[0, this.dataGridView1.CurrentCell.RowIndex].Value.ToString(); 150 str_cmdtxt = "update 员工表 set 员工姓名='" + this.txtName.Text.Trim() + "'," + "基本工资=" + 151 Convert.ToSingle(this.txtSalary.Text.Trim()) + "," + "工作评价='" + this.txtEstimate.Text.Trim() + 152 "' where 员工编号='" + str_condition + "'"; 153 try 154 { 155 if (con.State == ConnectionState.Closed) 156 { 157 con.Open(); 158 } 159 using (SqlCommand cmd = new SqlCommand(str_cmdtxt, con)) 160 { 161 cmd.ExecuteNonQuery(); 162 MessageBox.Show("数据修改成功!"); 163 } 164 } 165 catch (Exception ex) 166 { 167 MessageBox.Show("错误:" + ex.Message, "错误提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); 168 } 169 finally 170 { 171 if (con.State == ConnectionState.Open) 172 { 173 con.Close(); 174 con.Dispose(); 175 } 176 } 177 Showinf(); 178 ClearTxt(); 179 } 180 else 181 { 182 MessageBox.Show("员工编号为空啊!","提示对话框",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question); 183 } 184 } 185 } 186 /// <summary> 187 /// 删除记录 188 /// </summary> 189 /// <param name="sender"></param> 190 /// <param name="e"></param> 191 private void btnDelete_Click(object sender, EventArgs e) 192 { 193 if (this.txtNo.Text == "") 194 { 195 MessageBox.Show("请输入员工编号!"); 196 } 197 else 198 { 199 if (MessageBox.Show("你确定要删除吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 200 { 201 using (SqlConnection con = new SqlConnection(strConn)) 202 { 203 con.Open(); 204 string str_cmdtxt = "delete from 员工表 where 员工编号= '" + this.txtNo.Text.Trim() + "'"; 205 SqlCommand cmd = new SqlCommand(str_cmdtxt, con); 206 cmd.ExecuteNonQuery(); 207 con.Close(); 208 Showinf(); 209 MessageBox.Show("删除成功!"); 210 } 211 ClearTxt(); 212 } 213 else 214 { 215 ClearTxt(); 216 } 217 } 218 } 219 /// <summary> 220 /// 清空文本框 221 /// </summary> 222 /// <param name="sender"></param> 223 /// <param name="e"></param> 224 private void btnClear_Click(object sender, EventArgs e) 225 { 226 ClearTxt(); 227 } 228 /// <summary> 229 /// 退出操作 230 /// </summary> 231 /// <param name="sender"></param> 232 /// <param name="e"></param> 233 private void btnExit_Click(object sender, EventArgs e) 234 { 235 Application.Exit(); 236 } 237 238 private void btnFind_Click(object sender, EventArgs e) 239 { 240 //调用清空文本的方法 241 // ClearTxt(); 242 using(SqlConnection con=new SqlConnection(strConn)) 243 { 244 con.Open(); 245 string str_cmdtxt = "select * from 员工表 where 员工编号='" + this.txtNo.Text.Trim() + "'"; 246 SqlCommand cmd = new SqlCommand(str_cmdtxt,con); 247 SqlDataReader dr = cmd.ExecuteReader(); 248 while(dr.Read()) 249 { 250 this.txtName.Text = dr["员工姓名"].ToString(); 251 this.txtSalary.Text = dr["基本工资"].ToString(); 252 this.txtEstimate.Text = dr["工作评价"].ToString(); 253 //txtName.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[1].Value.ToString(); 254 //txtSalary.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[2].Value.ToString(); 255 //txtEstimate.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[3].Value.ToString(); 256 //txtNo.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.ToString(); 257 } 258 if (con.State ==ConnectionState.Open) 259 { 260 con.Close(); 261 con.Dispose(); 262 } 263 } 264 265 } 266 } 267 }