学习ADO.NET技术(十)—实例总结

经过这几天的学习,对ADO.NET技术有了一个基本的认识。今天就通过一个实例来总结ADO.NET中常用到的知识点。

1、实例要求

目标功能:创建一个数据库HR,员工数据表Emp。实现对员工信息的展示、增、删、查、改、搜搜索、多行删除、多条件组合搜索等功能。
要求:创建员工信息的实体类,将对数据库的操作封装在SqlHelper类中。

2、实现

2.1 创建数据库HR

打开SQL Server数据库管理系统,创建数据库。
这里写图片描述

2.2创建员工信息表Emp

这里写图片描述

2.3 创建窗体,展示数据表在窗体中

            string strSql = "select * from Emp ";
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                SqlCommand cmd = new SqlCommand(strSql, conn);
                try
                {
                    conn.Open();
                    SqlDataReader sdr = cmd.ExecuteReader();
                    while (sdr.Read())
                    {
                        Emp emp = new Emp();
                        emp.Id = Convert.ToInt32(sdr["Id"]);
                        emp.Name = sdr["Name"] + "";
                        emp.Phone = sdr["Phone"] + "";
                        emp.Height = Convert.ToInt32(sdr["Height"]);
                        emp.Memo = sdr["Memo"] + "";
                        emps.Add(emp);
                    }
                    dataGridView1.DataSource = emps;
                    sdr.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("异常信息:\n" + ex.Message);
                }
            }

上述代码是将数据表中所有数据展示到窗体中。
运行结果如下所示:
这里写图片描述
这里展示了表中所有的员工信息到界面中。

2.4新增员工记录到表中

            //将新增信息添加到数据表中
            string name = txtName.Text;
            string phone = txtPhone.Text;
            string height = txtHeight.Text;
            string marks = txtMarks.Text;
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into Emp(Name,Phone,Height,Memo) values(@Name,@Phone,@Height,@marks)");

            //构造参数
            SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@Name", name),new SqlParameter("@Phone",phone),
                new SqlParameter("@Height",height),new SqlParameter("@marks",marks) };
            //执行命令
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
                cmd.Parameters.AddRange(paras);
                conn.Open();
                int rows = cmd.ExecuteNonQuery();
                if (rows > 0)
                    MessageBox.Show("新增成功!");
                Close();
            }

2.5 删除记录

            //选中的第一行第一列的值
            int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value);
            string strSql = "delete from Emp where Id = @Id";
            SqlParameter para1 = new SqlParameter("@Id", id);
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                SqlCommand cmd = new SqlCommand(strSql, conn);
                cmd.Parameters.Add(para1);
                try
                {
                    conn.Open();
                    int rows = cmd.ExecuteNonQuery();
                    if(rows>0)
                    {
                        MessageBox.Show("删除成功");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("异常信息:\n" + ex.Message);
                }
            }

2.6 修改信息

修改某一行选中的员工信息:

            int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value);
            string strSql = "update Emp SET Name = @Name,Phone = @Phone,Height = @Height" +
                ",Memo = @Memo WHERE Id = @Id";
            SqlParameter[] paras = new SqlParameter[] {new SqlParameter("@Name","滴滴"),
            new SqlParameter("@Phone","15682019803"),new SqlParameter("@Height","162"),new SqlParameter("@Memo","滴滴"),
            new SqlParameter("@id",id),};
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                SqlCommand cmd = new SqlCommand(strSql, conn);
                cmd.Parameters.AddRange(paras);
                try
                {
                    conn.Open();
                    int rows = cmd.ExecuteNonQuery();
                    if (rows > 0)
                        MessageBox.Show("修改成功!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("异常信息:" + ex.Message);
                }
            }

2.7根据员工姓名关键字查询员工信息

            string strSQL = "select * from Emp where Name like @Name";
            SqlParameter para = new SqlParameter("@Name", "%" + txtName.Text + "%");
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                try
                {
                    SqlCommand cmd = new SqlCommand(strSQL, conn);
                    cmd.Parameters.Add(para);
                    conn.Open();
                    SqlDataReader sdr = cmd.ExecuteReader();
                    while (sdr.Read())
                    {
                        Emp emp = new Emp();
                        emp.Id = Convert.ToInt32(sdr["Id"]);
                        emp.Name = sdr["Name"] + "";
                        emp.Phone = sdr["Phone"] + "";
                        emp.Height = Convert.ToInt32(sdr["Height"]);
                        emp.Memo = sdr["Memo"] + "";
                        emps.Add(emp);
                    }
                    dataGridView1.DataSource = emps;
                    sdr.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("异常信息:\n" + ex.Message);
                }
            }

查询结果:
这里写图片描述

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值