【知识要点】
(1)单条记录删除
【问题提出】
对于已经终止合作的客户,我们常常会从表中删除,那么如何完成删除一条记录呢?
【在线指导】
我们在第31章已经学习了如何删除记录,但如果真的在实际项目中是那样删除一条记录,估计不会有人用你开发的系统。我们更常见的是如上图所示,看中某一条,可以直接删除。
我们需要学习一个新的事件,你可想而知,如果是三个条件呢?四个条件呢?你要写多少种情况呢?
我们没有采取以上写法,而是巧妙的使用了……
1、设计界面
(1)打开Hello项目,单击“启动页>最近使用的项目>Hello”。
(2)在“解决方案资源管理器”中添加“SqlDelete.aspx”页面。
(3)从工具箱中拖1个GridView到SqlDelete.aspx页面。
A.GridView控件ID属性分别为:gvClient
注:对GridView设置样式以及设置标题,由于前面已经多冷重复,在此不再赘述。
B.添加“删除”列
(4)添加事件:RowDeleting
单击“gvClient”控件。
在属性栏中单击“闪电”符号(表示事件),然后选择“RowDeleting”,双击其后空白处。
2、添加代码
(1)双击页面上的“空白”部分。
我们在Page_Load()中间输入:
//连接SQL SERVER
string ConnSqlServer = "Server=www.woshicainiao.net;Database=SuperMarket;User ID=sa;Pwd=xxx";
SqlConnection Conn = new SqlConnection(ConnSqlServer);
//打开
Conn.Open();
//填充DataSet
string ClientSql = "SELECT * FROM Client";
SqlDataAdapter Adapter = new SqlDataAdapter(ClientSql, Conn);
DataSet Ds = new DataSet();
Adapter.Fill(Ds, "Client");
//执行命令
gvClient.DataSource = Ds.Tables["Client"];
gvClient.DataBind();
//关闭数据库
Conn.Close();
(2)我们为gvClient_RowDeleting()添加代码
我们在gvClient_RowDeleting(object sender, GridViewDeleteEventArgs e)中间输入:
注:请你看清楚,是在gvClient_RowDeleting()中间输入,而不是Page_Load()。
//连接SQL SERVER
string ConnSqlServer = "Server=www.woshicainiao.net;Database=SuperMarket;User ID=sa;Pwd=xxx";
SqlConnection Conn = new SqlConnection(ConnSqlServer);
//打开
Conn.Open();
string ClientSql = "SELECT * FROM Client";
SqlDataAdapter Adapter = new SqlDataAdapter(ClientSql, Conn);
//添加CommandBuider类,用于完成数据库表的真实更新
SqlCommandBuilder CbClient = new SqlCommandBuilder(Adapter);
//填充DataSet
DataSet Ds = new DataSet();
Adapter.Fill(Ds, "Client");
//在内存中删除一条记录
Ds.Tables["Client"].Rows[e.RowIndex].Delete();
//更新Ds中Client表(Client是一个内存中的表,即DataTable)
Adapter.Update(Ds, "Client");
//执行命令
gvClient.DataSource = Ds.Tables["Client"];
gvClient.DataBind();
//关闭数据库
Conn.Close();
讲解:
注意体会本种写法的妙处,即使10个条件也不会增加多少个SQL语句。
(2)从“解决方案资源管理器”中,选择“SqlDelete.aspx”,单击右键“在浏览器中查看”。
单击“删除”之后,我们发现“郑州林锐科技公司”已经被删除了。