利用DataGrid编辑、修改、删除记录

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

if exists (select * from dbo.sysobjects where

id = object_id(N''[dbo].[People]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)

drop table [dbo].[People]

GO

CREATE TABLE [dbo].[People] (

[pkID] [int] IDENTITY (1, 1) NOT NULL ,

[FirstName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,

[LastName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

EditDataGridCS.ASPx

<%@ Page Language="C#" debug="true"%>

<%@ Import Namespace="System.Data"%>

<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">

//make first sql

String sql = "";

String strCnn = "Data Source=.;Initial Catalog=aa;User Id=sa;Password=;";

//create a datasource function

public ICollection CreateDataSource () {

SqlConnection conn = new SqlConnection(strCnn);

SqlDataAdapter db_sqladaptor = new SqlDataAdapter(sql,conn);

DataSet ds = new DataSet();

db_sqladaptor.Fill(ds,"MyDataResult");

DataView myView = ds.Tables["MyDataResult"].DefaultView;

return myView;

}

//do page load

public void Page_Load(Object sender, EventArgs e) {

strCnn = "Data Source=.;Initial Catalog=aa;User Id=sa;Password=;";

if (!IsPostBack)

{

sql = "Select * FROM People";

People.DataSource = CreateDataSource();

People.DataBind();

}

}

public void Page_Grid(Object sender, DataGridPageChangedEventArgs e)

{

sql = "Select * FROM People";

// Set CurrentPageIndex to the page the user clicked.

People.CurrentPageIndex = e.NewPageIndex;

// Rebind the data.

People.DataSource = CreateDataSource();

People.DataBind();

}

public void People_Edit(Object sender, DataGridCommandEventArgs e)

{

sql = "Select * FROM People";

People.EditItemIndex = e.Item.ItemIndex;

People.DataSource = CreateDataSource();

People.DataBind();

}

public void People_Cancel(Object sender, DataGridCommandEventArgs e)

{

sql = "Select * FROM People";

People.EditItemIndex = -1;

People.DataSource = CreateDataSource();

People.DataBind();

}

public void People_Update(Object sender, DataGridCommandEventArgs e)

{

string FirstName = ((TextBox)e.Item.Cells[1].Controls[1]).Text;

string LastName = ((TextBox)e.Item.Cells[2].Controls[1]).Text;

SqlConnection connUpdate = new SqlConnection(strCnn);

connUpdate.Open();

String sql_edit = "UPDATE People " +

"SET FirstName = ''" + FirstName.Replace("''","''''")+ "''," +

"LastName = ''" + LastName.Replace("''","''''")+ "''" +

" WHERE pkID = " + e.Item.Cells[0].Text;

SqlCommand sqlCommandUpdate = new SqlCommand(sql_edit,connUpdate);

sqlCommandUpdate.ExecuteNonQuery();

connUpdate.Close();

sql = "Select * FROM People";

People.EditItemIndex = -1;

People.DataSource = CreateDataSource();

People.DataBind();

}

public void People_Delete(Object sender, DataGridCommandEventArgs e) {

SqlConnection connDel = new SqlConnection(strCnn);

connDel.Open();

String sql_Del = "DELETE FROM People " +

" WHERE pkID = " + e.Item.Cells[0].Text;

SqlCommand sqlCommandDel = new SqlCommand(sql_Del,connDel);

sqlCommandDel.ExecuteNonQuery();

connDel.Close();

sql = "Select * FROM People";

People.EditItemIndex = -1;

People.DataSource = CreateDataSource();

People.DataBind();

}

</script>

<font face="arial" size="3">

<b>Edit People</b>

</font>

<br>

<form runat="server">

<ASP:DataGrid id="People" runat="server"

BorderColor="green"

Width="640"

PageSize="5"

AllowPaging="true"

OnPageIndExchanged="Page_Grid"

BorderWidth="1"

CellPadding="3"

AutoGenerateColumns="false"

ShowHeader="true"

Visible="true"

OnEditCommand="People_Edit"

OnCancelCommand="People_Cancel"

OnUpdateCommand="People_Update"

OnDeleteCommand="People_Delete">

<HeaderStyle BorderColor="White" BackColor="black"

ForeColor="White"

Font-Bold="True"

Font-Name="Arial"

Font-Size="9" HorizontalAlign="Center"/>

<ItemStyle BorderColor=""

BackColor="#FFFFF0"

ForeColor="Black"

Font-Name="Arial"

Font-Size="8"

Font-Bold="False" HorizontalAlign="Center"/>

<EditItemStyle BorderColor=""

BackColor="#FFFFF0"

ForeColor="Black"

Font-Name="Arial"

Font-Size="7"

Font-Bold="False" HorizontalAlign="Center"/>

<PagerStyle Mode="NumericPages" Font-Size="8"/>

<Columns>

<asp:BoundColumn HeaderText="ID" ReadOnly="true" DataField="pkID"/>

<asp:TemplateColumn>

<HeaderTemplate>

<b> First Name </b>

</HeaderTemplate>

<ItemTemplate>

<asp:Label

Text=''<%#

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航