关于ASP.NET中GridView控件的编辑和删除问题!

第一种直接用SqlDataSource绑定实现编辑和删除!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>无标题页</title>

</head>

<body>

    <form id="form1" runat="server">

        <asp:GridView ID="GridView1" runat="server" DataKeyNames="id" DataSourceID="SqlDataSource1" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" AutoGenerateColumns="False">

            <Columns>

                <asp:BoundField DataField="id" SortExpression="id" ReadOnly=true/>

                <asp:BoundField DataField="name" SortExpression="name"/>

                <asp:BoundField DataField="pwd" SortExpression="pwd" />

            </Columns>

        </asp:GridView>

       

        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ProviderName="System.Data.SqlClient" ConnectionString='server=.;uid=sa;database=test'

            SelectCommand="select id,name,pwd from usertab" DeleteCommand="delete from usertab where id = @id"

             UpdateCommand="update usertab set name = @name,pwd = @pwd where id = @id ">

            <DeleteParameters>

            <asp:ControlParameter ControlID="GridView1" Name="id" PropertyName="SelectedValue"/>

            </DeleteParameters>

            <UpdateParameters>

            <asp:ControlParameter ControlID="GridView1" DefaultValue="id" Name="id" PropertyName="SelectedValue" />

                <asp:ControlParameter ControlID="GridView1" DefaultValue="name" Name="name" PropertyName="SelectedValue" />

                <asp:ControlParameter ControlID="GridView1" DefaultValue="pwd" Name="pwd" PropertyName="SelectedValue" />

            </UpdateParameters>

            </asp:SqlDataSource>

    </form>

</body>

</html>

这个就是SqlDataSource和GridView的配合,

第二种是在后台代码中实现的:

-------------------------------------------

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page

{

     SqlConnection sqlcon;

     SqlCommand sqlcom;

     string strCon = "Data Source=(local);Database=数据库名;Uid=帐号;Pwd=密码";

     protected void Page_Load(object sender, EventArgs e)

     {

         if (!IsPostBack)

         {

             bind();

         }

     }

     protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

     {

         GridView1.EditIndex = e.NewEditIndex;

         bind();

     }

//删除

     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

     {

         string sqlstr = "delete from 表 where id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";

         sqlcon = new SqlConnection(strCon);

         sqlcom = new SqlCommand(sqlstr,sqlcon);

         sqlcon.Open();

         sqlcom.ExecuteNonQuery();

         sqlcon.Close();

         bind();

     }

//更新

     protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

     {

         sqlcon = new SqlConnection(strCon);

         string sqlstr = "update 表 set 字段1='"

             + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',字段2='"

             + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',字段3='"

             + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='"

             + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";

         sqlcom=new SqlCommand(sqlstr,sqlcon);

         sqlcon.Open();

         sqlcom.ExecuteNonQuery();

         sqlcon.Close();

         GridView1.EditIndex = -1;

         bind();

     }

//取消

     protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)

     {

         GridView1.EditIndex = -1;

         bind();

     }

//绑定

     public void bind()

     {

         string sqlstr = "select * from 表";

         sqlcon = new SqlConnection(strCon);

         SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);

         DataSet myds = new DataSet();

         sqlcon.Open();

         myda.Fill(myds, "表");

         GridView1.DataSource = myds;

         GridView1.DataKeyNames = new string[] { "id" };//主键

         GridView1.DataBind();

         sqlcon.Close();

     }

}

前台主要代码:

                             ... ...

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"

                         ForeColor="#333333" GridLines="None" OnRowDeleting="GridView1_RowDeleting"

OnRowEditing="GridView1_RowEditing"

                         OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit">

                         <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />

                         <Columns>

                             <asp:BoundField DataField="身份证号码" HeaderText="用户ID" ReadOnly="True" />

                             <asp:BoundField DataField="姓名" HeaderText="用户姓名" />

                             <asp:BoundField DataField="员工性别" HeaderText="性别" />

                             <asp:BoundField DataField="家庭住址" HeaderText="家庭住址" />

                             <asp:CommandField HeaderText="选择" ShowSelectButton="True" />   

         <asp:CommandField HeaderText="编辑" ShowEditButton="True" />

                             <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />      

                         </Columns>

                         <RowStyle ForeColor="#000066" />

                         <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />

                         <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />

                         <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />

                     </asp:GridView>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hbqjzx

你的鼓励将是我分享的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值