GridView数据绑定

时间:2020-12-03 03:56:20

GridView数据绑定

GridView数据绑定

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="WebApplication1.Index"%>

 <!DOCTYPE html>

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title></title>
 </head>
 <body>
     <form id="form1" runat="server">
     <div>
         <asp:GridView ID=">
             <Columns>
                 <asp:TemplateField HeaderText="全选" >
                     <HeaderTemplate>
                         <asp:CheckBox ID="CheckBox1" runat="server" Text="全选" onclick="checkAll(this)" />
                     </HeaderTemplate>
                     <ItemTemplate>
                         <asp:CheckBox ID="CheckBox2" runat="server" />
                         <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("stuID") %>' />
                     </ItemTemplate>
                 </asp:TemplateField>
                 <asp:BoundField DataField="stuName" HeaderText="姓名" />
                 <asp:BoundField DataField="stuNo" HeaderText="学号" />
                 <asp:BoundField DataField="sex" HeaderText="性别" />
                 <asp:TemplateField HeaderText="操作">
                     <ItemTemplate>
                         <asp:Button ID="Button2" runat="server" Text="编辑" CommandArgument='<%# Eval("stuID") %>' OnClick="Button2_Click" />
                         <asp:Button ID="Button3" runat="server" Text="删除" CommandArgument='<%# Eval("stuID") %>' OnClick="Button3_Click" />
                     </ItemTemplate>
                 </asp:TemplateField>
             </Columns>
             <FooterStyle BackColor="White" ForeColor="#000066" />
             <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
             <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
             <PagerTemplate>
                 <asp:Button ID="Button1" runat="server" Text="Button" />
             </PagerTemplate>
             <RowStyle ForeColor="#000066" />
             <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
             <SortedAscendingCellStyle BackColor="#F1F1F1" />
             <SortedAscendingHeaderStyle BackColor="#007DBB" />
             <SortedDescendingCellStyle BackColor="#CAC9C9" />
             <SortedDescendingHeaderStyle BackColor="#00547E" />
         </asp:GridView>
         <asp:Button ID="Button4" runat="server" Text="新增" OnClick="Button4_Click" />
     </div>
     </form>
 </body>
 </html>
 <script type="text/javascript">
     function checkAll(v){
         var arr = document.getElementById("GridView1").getElementsByTagName("input");
         ; i < arr.length; i++) {
             if (arr[i].type == "checkbox")
             {
                 arr[i].checked = v.checked;
             }
         }

     }
 </script>

Index页面

 using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Data.SqlClient;
 using System.Linq;
 using System.Text;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;

 namespace WebApplication1
 {
     public partial class Index : System.Web.UI.Page
     {
         protected void Page_Load(object sender, EventArgs e)
         {
             BindeList();
         }

         private void BindeList()//第一次加载
         {
             if (!Page.IsPostBack)
             {
                 Bindlist2();
             }
         }

         private void Bindlist2()
         {
             string sql = "select * from student";
             string strcon = "server=DESKTOP-QQGOIKH;database=stuDB;uid=sa;pwd=123";
             SqlConnection sqlcon = new SqlConnection(strcon);
             //创建适配器实例,在dataset与数据之间架起桥梁作用
             SqlDataAdapter myda = new SqlDataAdapter(sql, sqlcon);
             //创建dataset实例数据集
             DataSet myds = new DataSet();
             //打开数据库
             sqlcon.Open();
             //将表填充到数据集
             myda.Fill(myds, "staff");
             GridView1.DataSource = myds;
             GridView1.DataKeyNames = new string[] { "stuID" };
             GridView1.DataBind();
         }

         //编辑
         protected void Button2_Click(object sender, EventArgs e)
         {

                 //sender代表button内容
                 Button bt = sender as Button;//尝试sender转换为button类型,如果无法转换,将返回一个空值
                 string id = bt.CommandArgument;
                 Response.Redirect("updateLinst.aspx?id=" + id);

         }
         //删除
         protected void Button3_Click(object sender, EventArgs e)
         {
             //多项删除
             ;//计数器
             //遍历griview
             foreach (GridViewRow item in GridView1.Rows)//foreach不能直接遍历gridview,只能遍历行的集合
             {
                 CheckBox cb = item.Cells[].FindControl("CheckBox2") as CheckBox;//sender as CheckBox错误
                 //获取每一行第一列的服务器控件为checkBo2的内容
                 if (cb.Checked)
                 {
                     HiddenField hf = item.Cells[].FindControl("HiddenField1") as HiddenField;
                     string id = hf.Value;
                     string sql = "delete from student where stuID=@a";
                     SqlParameter pms = new SqlParameter("@a", id);
                     SqlConnection conn = new SqlConnection("server=DESKTOP-QQGOIKH;database=stuDB;uid=sa;pwd=123");
                     conn.Open();
                     SqlCommand cmd = new SqlCommand(sql, conn);
                     cmd.Parameters.Add(pms);
                     int i = cmd.ExecuteNonQuery();
                     count += i;
                     conn.Close();
                 }
             }
             )
             {
                 Response.Write("一共删除了"+count+"条数据");
                 Bindlist2();
             }
             else
             {
                 Response.Write("删除失败");
             }
         }

         protected void Button4_Click(object sender, EventArgs e)
         {
             Response.Redirect("insertList.aspx");
         }
     }
 }

Index后台

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="updateLinst.aspx.cs" Inherits="WebApplication1.updateLinst" %>

 <!DOCTYPE html>

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title></title>
 </head>
 <body>
     <form id="form1" runat="server">
     <div>
         <asp:Label ID="Label1" runat="server" Text="姓名"></asp:Label>
         <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
         <br />
         <asp:Label ID="Label2" runat="server" Text="编号"></asp:Label>
         <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
         <br />
         <asp:Label ID="Label3" runat="server" Text="学号"></asp:Label>
         <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
         <br />
         <asp:Button ID="Button1" runat="server" Text="提交" OnClick="Button1_Click" />
         <asp:Button ID="Button2" runat="server" Text="返回" OnClick="Button2_Click" />
     </div>
     </form>
 </body>
 </html>

修改页面

 using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Data.SqlClient;
 using System.Linq;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;

 namespace WebApplication1
 {
     public partial class updateLinst : System.Web.UI.Page
     {
         string strcon = "server=DESKTOP-QQGOIKH;database=stuDB;uid=sa;pwd=123";
         protected void Page_Load(object sender, EventArgs e)
         {
             if (!Page.IsPostBack)
             {
                 string id = Request["id"].ToString();
                 //取stuID对应的数据
                 string sql = "select * from student where stuID=@a";
                 SqlParameter pms = new SqlParameter("@a", id);
                 //ADO.NET操作
                 SqlConnection conn = new SqlConnection(strcon);
                 conn.Open();
                 SqlCommand cmd = new SqlCommand(sql, conn);
                 //传入参数
                 cmd.Parameters.Add(pms);
                 //执行
                 SqlDataReader sdr = cmd.ExecuteReader();
                 //读取
                 bool b = sdr.Read();//b代表是否读取到数据
                 if (b==true)
                 {
                     TextBox1.Text = sdr["stuName"].ToString();
                     TextBox2.Text = sdr["stuNo"].ToString();
                     TextBox3.Text = sdr["sex"].ToString();
                 }
                 conn.Close();
             }

         }
         //提交
         protected void Button1_Click(object sender, EventArgs e)
         {
             //取到id
             string id = Request["id"];
             string sql = "update student set stuName=@b,stuNo=@c,sex=@d where stuID=@a";

             SqlParameter[] pms = ];
             pms[] = new SqlParameter("@a", id);
             pms[] = new SqlParameter("@b", TextBox1.Text);
             pms[] = new SqlParameter("@c", TextBox2.Text);
             pms[] = new SqlParameter("@d", TextBox3.Text);
             //ADO.NET操作
             SqlConnection conn = new SqlConnection(strcon);
             conn.Open();
             SqlCommand cmd = new SqlCommand(sql, conn);
             cmd.Parameters.Add(pms[]);
             cmd.Parameters.Add(pms[]);
             cmd.Parameters.Add(pms[]);
             cmd.Parameters.Add(pms[]);
             int i = cmd.ExecuteNonQuery();
             conn.Close();
             )
             {
                 Response.Write("修改成功");
             }
             else
             {
                 Response.Write("修改失败");
             }
         }
         //返回
         protected void Button2_Click(object sender, EventArgs e)
         {
             Response.Redirect("Index.aspx");
         }
     }
 }

修改后台

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="insertList.aspx.cs" Inherits="WebApplication1.insertList" %>

 <!DOCTYPE html>

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title></title>
 </head>
 <body>
     <form id="form1" runat="server">
     <div>

         <asp:Label ID="Label1" runat="server" Text="姓名"></asp:Label>
         <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
          <br />
          <asp:Label ID="Label2" runat="server" Text="学号"></asp:Label>
         <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
         <br />
         <asp:Label ID="Label3" runat="server" Text="性别"></asp:Label>
         <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
         <br />
         <asp:Button ID="Button1" runat="server" Text="提交" OnClick="Button1_Click" />
     </div>
     </form>
 </body>
 </html>

新增页面

 using System;
 using System.Collections.Generic;
 using System.Data.SqlClient;
 using System.Linq;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;

 namespace WebApplication1
 {
     public partial class insertList : System.Web.UI.Page
     {
         protected void Page_Load(object sender, EventArgs e)
         {

         }
         //新增提交
         protected void Button1_Click(object sender, EventArgs e)
         {

             string sql = "insert into student (stuName, stuNo,sex) values (@a, @b,@c)";
             string strcon = "server=DESKTOP-QQGOIKH;database=stuDB;uid=sa;pwd=123";
             SqlParameter[] pms = ];
             pms[] = new SqlParameter("@a", TextBox1.Text);
             pms[] = new SqlParameter("@b", TextBox2.Text);
             pms[] = new SqlParameter("@c", TextBox3.Text);
             //ADO.NET操作
             SqlConnection conn = new SqlConnection(strcon);
             conn.Open();
             SqlCommand cmd = new SqlCommand(sql, conn);
             cmd.Parameters.Add(pms[]);
             cmd.Parameters.Add(pms[]);
             cmd.Parameters.Add(pms[]);
             int i = cmd.ExecuteNonQuery();
             conn.Close();
             )
             {
                 Response.Write("添加成功");
                 Response.Redirect("index.aspx");
             }
             else
             {
                 Response.Write("添加失败");
             }
         }
     }
 }

新增后台