代码using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;namespace DataGridDemoCS{ /// /// MSDNDemo1 的摘要说明。 /// public class MSDNDemo1 : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid DataGrid1; protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1; protected System.Data.SqlClient.SqlCommand sqlSelectCommand1; protected System.Data.SqlClient.SqlCommand sqlInsertCommand1; protected System.Data.SqlClient.SqlCommand sqlUpdateCommand1; protected System.Data.SqlClient.SqlCommand sqlDeleteCommand1; protected DataGridDemoCS.dsCustomers dsCustomers1; protected System.Data.SqlClient.SqlConnection sqlConnection1; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if (!Page.IsPostBack) { bindData(); } } void bindData() { sqlDataAdapter1.Fill(dsCustomers1); DataGrid1.DataBind(); } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { this.sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter(); this.sqlDeleteCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlConnection1 = new System.Data.SqlClient.SqlConnection(); this.sqlInsertCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlSelectCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlUpdateCommand1 = new System.Data.SqlClient.SqlCommand(); this.dsCustomers1 = new DataGridDemoCS.dsCustomers(); ((System.ComponentModel.ISupportInitialize)(this.dsCustomers1)).BeginInit(); this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand); this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand); this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateCommand); this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_DeleteCommand); this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound); // // sqlDataAdapter1 // this.sqlDataAdapter1.DeleteCommand = this.sqlDeleteCommand1; this.sqlDataAdapter1.InsertCommand = this.sqlInsertCommand1; this.sqlDataAdapter1.SelectCommand = this.sqlSelectCommand1; this.sqlDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping('Table', 'Customers', new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping('CustomerID', 'CustomerID'), new System.Data.Common.DataColumnMapping('CompanyName', 'CompanyName'), new System.Data.Common.DataColumnMapping('ContactName', 'ContactName'), new System.Data.Common.DataColumnMapping('ContactTitle', 'ContactTitle'), new System.Data.Common.DataColumnMapping('Address', 'Address'), new System.Data.Common.DataColumnMapping('City', 'City'), new System.Data.Common.DataColumnMapping('Region', 'Region'), new System.Data.Common.DataColumnMapping('PostalCode', 'PostalCode'), new System.Data.Common.DataColumnMapping('Country', 'Country'), new System.Data.Common.DataColumnMapping('Phone', 'Phone'), new System.Data.Common.DataColumnMapping('Fax', 'Fax')})}); this.sqlDataAdapter1.UpdateCommand = this.sqlUpdateCommand1; // // sqlDeleteCommand1 // this.sqlDeleteCommand1.CommandText = @'DELETE FROM Customers WHERE (CustomerID = @Original_CustomerID) AND (Address = @Original_Address OR @Original_Address IS NULL AND Address IS NULL) AND (City = @Original_City OR @Original_City IS NULL AND City IS NULL) AND (CompanyName = @Original_CompanyName) AND (ContactName = @Original_ContactName OR @Original_ContactName IS NULL AND ContactName IS NULL) AND (ContactTitle = @Original_ContactTitle OR @Original_ContactTitle IS NULL AND ContactTitle IS NULL) AND (Country = @Original_Country OR @Original_Country IS NULL AND Country IS NULL) AND (Fax = @Original_Fax OR @Original_Fax IS NULL AND Fax IS NULL) AND (Phone = @Original_Phone OR @Original_Phone IS NULL AND Phone IS NULL) AND (PostalCode = @Original_PostalCode OR @Original_PostalCode IS NULL AND PostalCode IS NULL) AND (Region = @Original_Region OR @Original_Region IS NULL AND Region IS NULL)'; this.sqlDeleteCommand1.Connection = this.sqlConnection1; this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_CustomerID', System.Data.SqlDbType.NVarChar, 5, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'CustomerID', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Address', System.Data.SqlDbType.NVarChar, 60, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Address', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_City', System.Data.SqlDbType.NVarChar, 15, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'City', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_CompanyName', System.Data.SqlDbType.NVarChar, 40, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'CompanyName', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_ContactName', System.Data.SqlDbType.NVarChar, 30, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'ContactName', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_ContactTitle', System.Data.SqlDbType.NVarChar, 30, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'ContactTitle', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Country', System.Data.SqlDbType.NVarChar, 15, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Country', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Fax', System.Data.SqlDbType.NVarChar, 24, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Fax', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Phone', System.Data.SqlDbType.NVarChar, 24, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Phone', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_PostalCode', System.Data.SqlDbType.NVarChar, 10, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'PostalCode', System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Region', System.Data.SqlDbType.NVarChar, 15, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Region', System.Data.DataRowVersion.Original, null)); // // sqlConnection1 // this.sqlConnection1.ConnectionString = 'workstation id=\'FANCY-FAMILY\';packet size=4096;user id=sa;data source=\'FANCY-FAMI' + 'LY\';persist security info=False;initial catalog=Northwind'; // // sqlInsertCommand1 // this.sqlInsertCommand1.CommandText = @'INSERT INTO Customers(CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax) VALUES (@CustomerID, @CompanyName, @ContactName, @ContactTitle, @Address, @City, @Region, @PostalCode, @Country, @Phone, @Fax); SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (CustomerID = @CustomerID)'; this.sqlInsertCommand1.Connection = this.sqlConnection1; this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@CustomerID', System.Data.SqlDbType.NVarChar, 5, 'CustomerID')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@CompanyName', System.Data.SqlDbType.NVarChar, 40, 'CompanyName')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@ContactName', System.Data.SqlDbType.NVarChar, 30, 'ContactName')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@ContactTitle', System.Data.SqlDbType.NVarChar, 30, 'ContactTitle')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Address', System.Data.SqlDbType.NVarChar, 60, 'Address')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@City', System.Data.SqlDbType.NVarChar, 15, 'City')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Region', System.Data.SqlDbType.NVarChar, 15, 'Region')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@PostalCode', System.Data.SqlDbType.NVarChar, 10, 'PostalCode')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Country', System.Data.SqlDbType.NVarChar, 15, 'Country')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Phone', System.Data.SqlDbType.NVarChar, 24, 'Phone')); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Fax', System.Data.SqlDbType.NVarChar, 24, 'Fax')); // // sqlSelectCommand1 // this.sqlSelectCommand1.CommandText = 'SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region,' + ' PostalCode, Country, Phone, Fax FROM Customers'; this.sqlSelectCommand1.Connection = this.sqlConnection1; // // sqlUpdateCommand1 // this.sqlUpdateCommand1.CommandText = @'UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName, ContactName = @ContactName, ContactTitle = @ContactTitle, Address = @Address, City = @City, Region = @Region, PostalCode = @PostalCode, Country = @Country, Phone = @Phone, Fax = @Fax WHERE (CustomerID = @Original_CustomerID) AND (Address = @Original_Address OR @Original_Address IS NULL AND Address IS NULL) AND (City = @Original_City OR @Original_City IS NULL AND City IS NULL) AND (CompanyName = @Original_CompanyName) AND (ContactName = @Original_ContactName OR @Original_ContactName IS NULL AND ContactName IS NULL) AND (ContactTitle = @Original_ContactTitle OR @Original_ContactTitle IS NULL AND ContactTitle IS NULL) AND (Country = @Original_Country OR @Original_Country IS NULL AND Country IS NULL) AND (Fax = @Original_Fax OR @Original_Fax IS NULL AND Fax IS NULL) AND (Phone = @Original_Phone OR @Original_Phone IS NULL AND Phone IS NULL) AND (PostalCode = @Original_PostalCode OR @Original_PostalCode IS NULL AND PostalCode IS NULL) AND (Region = @Original_Region OR @Original_Region IS NULL AND Region IS NULL); SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (CustomerID = @CustomerID)'; this.sqlUpdateCommand1.Connection = this.sqlConnection1; this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@CustomerID', System.Data.SqlDbType.NVarChar, 5, 'CustomerID')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@CompanyName', System.Data.SqlDbType.NVarChar, 40, 'CompanyName')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@ContactName', System.Data.SqlDbType.NVarChar, 30, 'ContactName')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@ContactTitle', System.Data.SqlDbType.NVarChar, 30, 'ContactTitle')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Address', System.Data.SqlDbType.NVarChar, 60, 'Address')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@City', System.Data.SqlDbType.NVarChar, 15, 'City')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Region', System.Data.SqlDbType.NVarChar, 15, 'Region')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@PostalCode', System.Data.SqlDbType.NVarChar, 10, 'PostalCode')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Country', System.Data.SqlDbType.NVarChar, 15, 'Country')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Phone', System.Data.SqlDbType.NVarChar, 24, 'Phone')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Fax', System.Data.SqlDbType.NVarChar, 24, 'Fax')); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_CustomerID', System.Data.SqlDbType.NVarChar, 5, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'CustomerID', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Address', System.Data.SqlDbType.NVarChar, 60, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Address', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_City', System.Data.SqlDbType.NVarChar, 15, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'City', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_CompanyName', System.Data.SqlDbType.NVarChar, 40, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'CompanyName', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_ContactName', System.Data.SqlDbType.NVarChar, 30, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'ContactName', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_ContactTitle', System.Data.SqlDbType.NVarChar, 30, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'ContactTitle', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Country', System.Data.SqlDbType.NVarChar, 15, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Country', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Fax', System.Data.SqlDbType.NVarChar, 24, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Fax', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Phone', System.Data.SqlDbType.NVarChar, 24, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Phone', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_PostalCode', System.Data.SqlDbType.NVarChar, 10, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'PostalCode', System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter('@Original_Region', System.Data.SqlDbType.NVarChar, 15, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), 'Region', System.Data.DataRowVersion.Original, null)); // // dsCustomers1 // this.dsCustomers1.DataSetName = 'dsCustomers'; this.dsCustomers1.Locale = new System.Globalization.CultureInfo('zh-CN'); this.Load += new System.EventHandler(this.Page_Load); ((System.ComponentModel.ISupportInitialize)(this.dsCustomers1)).EndInit(); } #endregion private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { DataGrid1.EditItemIndex=e.Item.ItemIndex; bindData(); } private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { string CustomerID=e.Item.Cells[1].Text; string CompanyName=((TextBox)e.Item.Cells[2].Controls[0]).Text; string ContactName=((TextBox)e.Item.Cells[3].Controls[0]).Text; string ContactTitle=((TextBox)e.Item.Cells[4].Controls[0]).Text; string Address=((TextBox)e.Item.Cells[5].Controls[0]).Text; string City=((TextBox)e.Item.Cells[6].Controls[0]).Text; string Region=((TextBox)e.Item.Cells[7].Controls[0]).Text; string Country=((TextBox)e.Item.Cells[8].Controls[0]).Text; sqlDataAdapter1.Fill(dsCustomers1); dsCustomers.CustomersRow dr=dsCustomers1.Customers.FindByCustomerID(CustomerID); dr.CompanyName=CompanyName; dr.ContactName=ContactName; dr.ContactTitle=ContactTitle; dr.Address=Address; dr.Region=Region; dr.Country=Country; sqlDataAdapter1.Update(dsCustomers1); dsCustomers1.AcceptChanges(); DataGrid1.EditItemIndex=-1; bindData(); } private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { string CustomerID=e.Item.Cells[1].Text; sqlDataAdapter1.Fill(dsCustomers1); dsCustomers.CustomersRow dr=dsCustomers1.Customers.FindByCustomerID(CustomerID); dr.Delete(); sqlDataAdapter1.Update(dsCustomers1); dsCustomers1.AcceptChanges(); bindData(); } private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { DataGrid1.EditItemIndex=-1; bindData(); } private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if (e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem) { LinkButton l=(LinkButton)e.Item.Cells[11].Controls[0]; DataRowView drv=(DataRowView)e.Item.DataItem; l.Attributes.Add('onclick','javascript:return confirm('你确认要删除'+drv.Row.ItemArray[0]+'?');'); Label label=(Label)e.Item.FindControl('LblID'); label.Text=Convert.ToString(e.Item.ItemIndex+1); } } }}