ASP.NET(C#) GridView (编辑、删除、更新、取消)

转自:http://my.oschina.net/dldlhrmc/blog/93458

前台代码

 

01<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %>
02  
03 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
04  
05 <html xmlns="http://www.w3.org/1999/xhtml">
06 <head runat="server">
07     <title></title>
08 </head>
09 <body>
10     <form id="form1" runat="server">
11     <div>
12      
13         <asp:GridView ID="GridView1" runat="server" AutoGenerateDeleteButton="True"
14             AutoGenerateEditButton="True" DataKeyNames="id"
15             onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"
16             onrowupdating="GridView1_RowUpdating"
17             onrowcancelingedit="GridView1_RowCancelingEdit" >
18         </asp:GridView>
19      
20     </div>
21     </form>
22 </body>
23 </html>

 

后台代码

 

01using System;
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Web;
05 using System.Web.UI;
06 using System.Web.UI.WebControls;
07 using System.Data.SqlClient;
08 using System.Data;
09  
10 public partial class Default5 : System.Web.UI.Page
11 {
12     private void BindData()
13     {
14         String Strcon = "Data Source=.;Initial Catalog=testDB;Integrated Security=True";
15         SqlConnection con = new SqlConnection(Strcon);
16         String sql = "select userinfo.id,username,password,birthday from userinfo";
17         SqlDataAdapter ad = new SqlDataAdapter(sql, con);
18         DataSet ds = new DataSet();
19         ad.Fill(ds);
20         GridView1.DataSource = ds;
21         GridView1.DataBind();
22     }
23  
24     protected void Page_Load(object sender, EventArgs e)
25     {
26         if (!IsPostBack)  /*如果省略这句,下面的更新操作将无法完成,因为获得的值是不变的*/
27         {
28             BindData();
29         }
30     }
31     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
32     {
33         String Strcon = "Data Source=.;Initial Catalog=testDB;Integrated Security=True";
34         SqlConnection con = new SqlConnection(Strcon);
35         int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);/*获取主键,需要设置 DataKeyNames,这里设为 id */
36         String sql = "delete from userinfo where id='" + id+"'";
37          
38         SqlCommand com = new SqlCommand(sql, con);
39         con.Open();
40         com.ExecuteNonQuery();
41         con.Close();
42         BindData();
43  
44     }
45  
46     /*编辑操作,利用e.NewEditIndex获取当前编辑行索引*/
47     protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
48     {
49         GridView1.EditIndex = e.NewEditIndex;
50         BindData();              /*再次绑定显示编辑行的原数据,不进行绑定要点2次编辑才能跳到编辑状态*/
51     }
52     protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
53     {
54         String Strcon = "Data Source=.;Initial Catalog=testDB;Integrated Security=True";
55         SqlConnection con = new SqlConnection(Strcon);
56         String username = (GridView1.Rows[e.RowIndex].Cells[2].Controls[0] as TextBox).Text.ToString();    /*获取要更新的数据*/
57         String password = (GridView1.Rows[e.RowIndex].Cells[3].Controls[0] as TextBox).Text.ToString();
58         String birthday = (GridView1.Rows[e.RowIndex].Cells[4].Controls[0] as TextBox).Text.ToString();
59  
60         int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);/*获取主键,需要设置 DataKeyNames,这里设为 id */
61  
62         String sql = "update userinfo set username='" + username + "',password='"+password+"',birthday='"+birthday+"' where id='"+id+"'";
63  
64         SqlCommand com = new SqlCommand(sql, con);
65         con.Open();
66         com.ExecuteNonQuery();
67         con.Close();
68         GridView1.EditIndex = -1;
69         BindData();
70     }
71     protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
72     {
73         GridView1.EditIndex = -1;                 /*编辑索引赋值为-1,变回正常显示状态*/
74         BindData();
75     }
76 }

SQL 脚本(SQL Server)

 

 

01USE [testDB]
02 GO
03  
04 /****** Object:  Table [dbo].[userinfo]    Script Date: 12/02/2012 22:20:46 ******/
05 SET ANSI_NULLS ON
06 GO
07  
08 SET QUOTED_IDENTIFIER ON
09 GO
10  
11 SET ANSI_PADDING ON
12 GO
13  
14 CREATE TABLE [dbo].[userinfo](
15    [id] [int] IDENTITY(1,1) NOT NULL,
16    [username] [varchar](50) NULL,
17    [password] [varchar](50) NULL,
18    [birthday] [varchar](50) NULL,
19  CONSTRAINT [PK_userinfo] PRIMARY KEY CLUSTERED
20 (
21    [id] ASC
22 )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
23 ON [PRIMARY]
24  
25 GO
26  
27 SET ANSI_PADDING OFF
28 GO

 

本人菜鸟,勿喷!仅供参考。

转载于:https://www.cnblogs.com/cugwx/p/3704151.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值