第一部分我们介绍,间数据库的四个功能——增加。这一次,我们将讨论除记录的功能。
1、刷新
要想删除数据库中的记录,首先我们应该将表中的数据显示出来,所以此功能的实现方法例如以下
1.1UI层
其代码
//刷新button,刷新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结果显示
2、删除
表中的数据显示出来以后。我们就能够依据须要来删除我们不想要的记录(一条或多条)
2.1UI层
代码
//删除选中的信息 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 ()); //获取所选行的第二列。即得到username } } //推断是否已经选中要删除的记录 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]; //取出username cmd.Parameters.Add(new SqlParameter("@UserName", User.UserName)); //获取所要删除的用户 cmd.ExecuteNonQuery(); //运行SQL,删除用户 cmd.Parameters.Clear(); //必须清空參数 //断开连接 conn.Close(); } return true; } catch { return false; //假设出错就返回false } } } }
2.4结果显示
然后,在刷新一下,就发现我们要删除的记录已经不存在了
版权声明:本文博主原创文章,博客,未经同意不得转载。