GriedView中的列索引号是从1开始的,而行的索引是从0开始的。GridView的选择、取消、编辑、删除、更新事件代码
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
public partial class Stu : System.Web.UI.Page
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MIS;Integrated Security=True");
public void search()//用来刷新
{
SqlCommand com = new SqlCommand("SQL语句",con);
con.Open();
GridView1.DataSource = com.ExecuteReader();
GridView1.DataBind();
con.Close();
}
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
search();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) //取消按钮
{
GridView1.EditIndex = -1;//将索引行变为-1
search();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) //编辑按钮
{
GridView1.EditIndex = e.NewEditIndex;//编辑行的索引为当前行
search();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) //选择按钮
{
int id = Int32.Parse(e.CommandArgument.ToString());; //取行索引号
string txt = GridView1.DataKeys[id].Value.ToString(); //取主键的值
string corpid = gridCorpReport.Rows[id].Cells[0].Text;//获取第id行第0列的值
Response.Write(txt);
// search();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) //删除按钮
{
SqlCommand com = new SqlCommand("delete from StuAll where studentId=@sno");//占位符
com.Parameters.Add("@sno",SqlDbType.NChar,20);//进行合理化,给后台占位置,具体声明
com.Parameters["@sno"].Value = GridView1.Rows[e.RowIndex].Cells[0].Text;//一行里的第一个单元格的内容
con.Open();
int i = com.ExecuteNonQuery();
if (i > 0)
Response.Write("<script>alert('删除成功!');</script>");
else
Response.Write("<script>alert('删除失败!');</script>");
con.Close();
GridView1.EditIndex = -1;//退出本次操作
search();//刷新
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) //更新按钮
{
SqlCommand com = new SqlCommand("update StuAll set grade=@grade,tie=@tie,class=@class where studentId=@studentId",con);
com.Parameters.Add("@studentId", SqlDbType.NChar, 10);
com.Parameters["@studentId"].Value = GridView1.Rows[e.RowIndex].Cells[0].Text;
com.Parameters.Add("@grade", SqlDbType.VarChar, 10);
com.Parameters["@grade"].Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;//定位到第一个单元格内的第一个控件
com.Parameters.Add("@tie", SqlDbType.VarChar, 30);
com.Parameters["@tie"].Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
com.Parameters.Add("@class", SqlDbType.VarChar, 30);
com.Parameters["@class"].Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
con.Open();
int i=com.ExecuteNonQuery();
if (i > 0)
Response.Write("<script>alert('修改成功!');</script>");
else
Response.Write("<script>alert('修改失败!');</script>");
con.Close();
GridView1.EditIndex = -1;
search();
}}