使用ADO.NET实现数据的更新
public SqlConnection GetConnection()
{
//获取Web.Config 文件中的连接字符串
String myStr = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection myConn = new SqlConnection(myStr);
return myConn;
}
protected void bind()
{
SqlConnection myConn = GetConnection();
myConn.Open();
string sqlStr = "select * from Test_tb5";
SqlDataAdapter myDa = new SqlDataAdapter(sqlStr,myConn);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
GridView1.DataSourceID = null;
GridView1.DataSource = myDs;
GridView1.DataKeyNames = new string[] { "ClassID"}; //指定GridView控件绑定的主键字段
GridView1.DataBind();
myDa.Dispose();
myDs.Dispose();
myConn.Close();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
this.bind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int ClassID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string CName = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
string sqlStr = "update Test_tb5 set ClassName ='" + CName + "'where ClassID=" + ClassID;
SqlConnection myConn = GetConnection();
myConn.Open();
SqlCommand myCmd = new SqlCommand(sqlStr,myConn);
myCmd.ExecuteNonQuery();
myCmd.Dispose();
myConn.Close();
GridView1.EditIndex = -1;
this.bind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
this.bind();
}
最后实现结果:点击左边的编辑即可出现如图所示的界面:
最后实现结果:点击左边的编辑即可出现如图所示的界面:

然后修改之后点击更新:

数据就能够得以更新,点击取消之后,数据不能更新。
其中值得注意的地方在:
1、为 GridView设置主键值:::
GridView1.DataKeyNames = new string[] { "ClassID"};
2、在 GridView的相关事件中获取主键值:
string CName = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
好绕的公式,区分出括号。
1、为 GridView设置主键值:::
GridView1.DataKeyNames = new string[] { "ClassID"};
2、在 GridView的相关事件中获取主键值:
string CName = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
好绕的公式,区分出括号。