您的位置:首页 > 运维架构 > 网站架构

三层架构,四大天王——删

2015-10-23 15:03 579 查看
第一部分我们介绍,间数据库的四个功能——增加。这一次,我们将讨论除记录的功能。

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结果显示



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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: