首页 > 其他 > 详细

三层架构与四大天王之——删

时间:2014-06-16 19:19:01      阅读:364      评论:0      收藏:0      [点我收藏+]

      上篇我们介绍了,数据库四大功能之一——增,这次我们就说说如何利用三层设计来对数据实现删除记录的功能

   1、刷新

      要想删除数据库中的记录,首先我们应该将表中的数据显示出来,所以此功能的实现方法如下

      1.1UI层

         bubuko.com,布布扣

       其代码

        //刷新按钮,刷新Users表的信息
        private void button1_Click(object sender, EventArgs e)
        {
            //实例化一个用户集,用来接收传回来的信息
            ArrayList UsersList = new ArrayList();
            //实例化B层
            UserModify.BLL.RefreshBLL RefB = new UserModify.BLL.RefreshBLL();

            //调用B层,并接收传回的信息
            UsersList = RefB.Refresh();

            //显示信息
            this.dataGridView1.DataSource = UsersList;     
        }

       1.2BLL层

    public class RefreshBLL      //B层刷新类
    {
        //刷新的方法,返回一个集合
        public ArrayList Refresh()
        {
            //实例化一个用户集,用来接收传回来的信息
            ArrayList  UsersList = new ArrayList ();

            //让D层处理,并接收返回信息
            UserModify .DAL.RefreshDAL refDal=new UserModify .DAL .RefreshDAL ();
            UsersList = refDal.Refresh();

            return UsersList;   //返回用户集
        }        
    }

       1.3DAL层

    public class RefreshDAL
    {
        public ArrayList Refresh()         //刷新,返回一个集合
        {
            using(SqlConnection conn=new SqlConnection(DBUtil.ConnString ))
            {
                //查询语句
                string Select = @"SELECT * FROM USERS";

                //打开数据库的连接
                conn.Open();

                //查询数据
                DataSet ds = new DataSet();      //用来保存查到的数据
                SqlDataAdapter dataAdpt = new SqlDataAdapter(Select,conn);    //执行SQL语句
                dataAdpt.Fill(ds);      //保存结果集

                //实例化一个用户集,用来返回信息
                ArrayList UsersList = new ArrayList();

                //利用循环,查出表中所有记录              
                for (int i=0;i<ds.Tables[0].Rows.Count;i++)
                {
                    Login.Model.UserInfo user = new Login.Model.UserInfo();       //实例化一个用户
                    
                    //得到单个用户信息
                    user.ID=i+1;
                    user.UserName=ds.Tables[0].Rows[i]["UserName"].ToString();
                    user.Password = ds.Tables[0].Rows[i]["Password"].ToString();
                    user.Email  = ds.Tables[0].Rows[i]["Email"].ToString();

                    UsersList.Add(user);    //将用户信息存入用户集
                }

                return UsersList;      //返回用户集
            }
        }
    }

      1.4结果显示

           bubuko.com,布布扣

   2、删除

     表中的数据显示出来以后,我们就可以根据需要来删除我们不想要的记录(一条或多条)

     2.1UI层

               bubuko.com,布布扣
        代码
        //删除选中的信息
        private void button2_Click(object sender, EventArgs e)
        {
            Login.Model .UserInfo  user=new Login.Model .UserInfo ();
            //实例化一个集合,用来存取准备删除的所有记录
            IList<string> userNameList=null;           
            
            //查找是否有选择的记录
            if (dataGridView1.SelectedRows.Count!=0)
            {
                //如果有选中项,就将记录传到集合中
                userNameList = new List<string>();      //实例化一个集合

                //循环,将所有选中项,都保存到集合中
                for (int i = 0; i < dataGridView1.SelectedRows.Count;i++ )
                {     
                    //user.UserName = ;
                    userNameList.Add(dataGridView1.SelectedRows[i].Cells[1].Value.ToString ());         //获取所选行的第二列,即得到用户名
                }
                    
            }
            
            //判断是否已经选中要删除的记录
            if (userNameList==null)
            {
                MessageBox.Show("请选择要删除的行");
                return;
            }

            //如果已经选中,则将记录集交由B层处理
            UserModify.BLL.ModifyBLL deleteBLL = new UserModify.BLL.ModifyBLL();

            //B层处理,并判断是否删除成功
            if (deleteBLL.Modify(userNameList))
            {
                MessageBox.Show ("删除数据成功,请刷新数据");
            }
            else
            {
                MessageBox.Show("删除数据失败!");

            }
        }      
    }<span style="font-size:18px; ">     </span>

      2.2BLL层

    public class ModifyBLL
    {
        public bool Modify(IList <string> usersDelete)
        {
            //实例化D层
            UserModify.DAL.ModifyDAL deleteDal = new UserModify.DAL.ModifyDAL();

            //将数据交由D层处理,
            if (deleteDal.Modify(usersDelete))           //如果成功返回true
            {
                return true;
            }
            else
            {
                return false;                           //如果失败返回false
            }     
        }
    }

     2.3DAL层

    public class ModifyDAL
    {
        public bool Modify(IList <string> userDelete)
        {
            using (SqlConnection conn = new SqlConnection(DBUtil.ConnString))
            {
                SqlCommand cmd = conn.CreateCommand();   //用来执行SQL语句等

                try
                {
                    //利用循环,将选中的数据删除
                    for (int i = 0; i < userDelete.Count; i++)
                    {
                        cmd.CommandText = @"DELETE FROM Users WHERE UserName=@UserName";
                        cmd.CommandType = CommandType.Text;

                        //打开数据库
                        conn.Open();

                        Login.Model.UserInfo User = new Login.Model.UserInfo();        //声明一个用户实例
                        User.UserName = userDelete[i];                                    //取出用户名
                        cmd.Parameters.Add(new SqlParameter("@UserName", User.UserName));      //获取所要删除的用户
                        cmd.ExecuteNonQuery();              //执行SQL,删除用户
                        cmd.Parameters.Clear();             //必须清空参数

                        //断开连接
                        conn.Close();
                    }

                    return true;
                }

                catch
                {
                    return false;     //如果出错就返回false
                }
            }
        }
    }

      2.4结果显示

                                   bubuko.com,布布扣

然后,在刷新一下,就发现我们要删除的记录已经不存在了

              bubuko.com,布布扣


三层架构与四大天王之——删,布布扣,bubuko.com

三层架构与四大天王之——删

原文:http://blog.csdn.net/u010168160/article/details/30997039

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!