第38章、多条记录删除

 

【知识要点】
  (1)学习多条记录删除
  (2)模板列

【问题提出】
  同时删除多条记录如何实现?

【在线指导】

  我们虽然已经学会了删除单条记录,但在软件项目中我们更愿意一次删除多条记录,这是我们常见而且也乐意做的,相对来说,难度有点大,但是下点功夫还是容易搞定的。

  难点有二:(1)模板列的学习与使用;(2)获取模板列的值。

1、设计界面

  (1)打开Hello项目,单击“启动页>最近使用的项目>Hello”。

  (2)在“解决方案资源管理器”中添加“SqlDeleteMulti.aspx”页面。

  (3)从工具箱中拖1个GridView到SqlDeleteMulti.aspx页面。

  第一步、GridView控件ID属性分别为:gvClient

        
  第二步、选择GridView,单击“>”箭头按钮,添加模板列
 

  第三步、设置模板列,单击“编辑模板”。
     
  

  第四步、为ItemTemplate添加复选框,从工具箱中拖一个复选框至上图ItemTemplate黄色区域。并命名为cbClientCode。
  

  第五步、为ItemTemplate添加文本框,从工具箱中拖一个文本框至上图ItemTemplate黄色区域。并命名为tbClientCode,设置其Visible属性为False。
  

  注:下面这一步至关重要的,别忘了!到源码把Text属性设为:<%# Eval("cClientCode") %>

  

  

  第六步、为HeaderTemplate添加按钮,从工具箱中拖一个按钮至HeaderTemplate棕色区域。并命名为btnDelete,CommandArgument属性为“Delete”。
   
  
     
   

  第七步、结束模板编辑,回到GridView界面。

  

  第八步、选择GridView,双击RowCommand后面,设置gvClient_RowCommand事件。

  

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_RowCommand()添加代码

  我们在gvClient_RowCommand(object sender, GridViewCommandEventArgs e)中间输入:

  注:请你看清楚,是在gvClient_RowCommand()中间输入,而不是Page_Load()。

string Condition = "";
string DelSql = "";
string LastCondition = "";

if (e.CommandArgument == "Delete")
{
  for (int i = 0; i <= gvClient.Rows.Count - 1; i++)
  {
    CheckBox cbMyID = (CheckBox)gvClient.Rows[i].FindControl("cbClientCode");

    if (cbMyID.Checked == true)
    {
      TextBox tbMyID = (TextBox)gvClient.Rows[i].FindControl("tbClientCode");
      Condition = Condition + tbMyID.Text.Trim() + ",";
      int Len = Condition.Length;
      LastCondition = Condition.Substring(0, Len - 1);
    }
  }
}

//删除语句
DelSql = "DELETE FROM Client WHERE nID IN(" + LastCondition + ")";

//连接SQL SERVER
string ConnSqlServer = "Server=www.woshicainiao.net;Database=SuperMarket;User ID=sa;Pwd=xxx";
SqlConnection Conn = new SqlConnection(ConnSqlServer);

//打开
Conn.Open();

SqlCommand Comm = new SqlCommand(DelSql, Conn);
Comm.ExecuteNonQuery();

//关闭数据库
Conn.Close();

  讲解:

  注意体会本种写法的妙处。

  (2)从“解决方案资源管理器”中,选择“SqlDeleteMulti.aspx”,单击右键“在浏览器中查看”。   
  

  验证:选择多个客户之后,单击“删除”按钮,我们发现确实从数据库中删除了。

你可能感兴趣的:(第38章、多条记录删除)