datagrid
比如表中三个字段
key1 int,key2 int,item varchar(50)
前面2个字段联合主键
前台代码:

<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" DataKeyField="DoubleKey">

<Columns>

<asp:BoundColumn DataField="item" HeaderText="item"></asp:BoundColumn>

<asp:ButtonColumn CommandName="del" Text="删除"></asp:ButtonColumn>

</Columns>

</asp:DataGrid>
后台代码:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

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 csdn2



{

public class WebForm20 : System.Web.UI.Page


{

protected System.Web.UI.WebControls.DataGrid DataGrid1;

private void Page_Load(object sender, System.EventArgs e)


{

if(!IsPostBack)


{

SetBind();

}

}

private void SetBind()


{

SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);

SqlDataAdapter da=new SqlDataAdapter("select * from doublekey",conn);

DataSet ds=new DataSet();

da.Fill(ds);

DataTable dt=ds.Tables[0];

DataColumn dc=new DataColumn("DoubleKey",typeof(string),"key1+'#'+key2");

dt.Columns.Add(dc);

this.DataGrid1.DataSource=dt;

this.DataGrid1.DataBind();

}


Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码

override protected void OnInit(EventArgs e)


{

//

// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。

//

InitializeComponent();

base.OnInit(e);

}


/**//// <summary>

/// 设计器支持所需的方法 - 不要使用代码编辑器修改

/// 此方法的内容。

/// </summary>

private void InitializeComponent()


{

this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)


{

if(e.CommandName=="del")


{

SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);

SqlCommand comm=new SqlCommand("delete from doublekey where key1=key1 and key2=key2",conn);

SqlParameter parm1=new SqlParameter("key1",SqlDbType.Int);

SqlParameter parm2=new SqlParameter("key2",SqlDbType.Int);

string [] keys=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString().Split('#');

parm1.Value=keys[0];

parm2.Value=keys[1];

comm.Parameters.Add(parm1);

comm.Parameters.Add(parm2);

conn.Open();

comm.ExecuteNonQuery();

conn.Close();

SetBind();

}

}

}

}