我使用的是Asp.net(C#)。
e.g。
protected void gvTest_RowUpdating(Object sender, GridViewUpdateEventArgs e)
{
int index = e.RowIndex;
TextBox txtBoxName = (TextBox)gvTest.Rows[index].FindControl("txtboxTest");
int pk = Convert.ToInt32(gvTest.DataKeys[index].Value);
//Response.Write("Index_update="+ pk);
SqlConnection sqlCon = new SqlConnection(constrng);
SqlCommand sqlcomm = new SqlCommand("update login set name= @name where stid=@pk",sqlCon);
sqlcomm.Parameters.AddWithValue("@name", SqlDbType.VarChar).Value = txtBoxName.Text;
sqlcomm.Parameters.AddWithValue("@pk", SqlDbType.VarChar).Value = pk;
try
{
sqlCon.Open();
sqlcomm.ExecuteNonQuery();
connectToDb();
Response.Write("<br/>" + "UPDATE STATEMENT=DONE");
}
catch (Exception ex)
{
Response.Write("<br/>"+ ex.Message);
}
finally
{
sqlCon.Close();
}
答案 0 :(得分:1)
代码看起来非常简单。更新行时,它会触发此方法处理的RowUpdating
事件。在这种方法......
您可以从UI中更新的行中获取值:
int index = e.RowIndex;
TextBox txtBoxName = (TextBox)gvTest.Rows[index].FindControl("txtboxTest");
int pk = Convert.ToInt32(gvTest.DataKeys[index].Value);
您定义SQL连接和命令以在数据库中执行UPDATE
语句:
SqlConnection sqlCon = new SqlConnection(constrng);
SqlCommand sqlcomm = new SqlCommand("update login set name= @name where stid=@pk",sqlCon);
sqlcomm.Parameters.AddWithValue("@name", SqlDbType.VarChar).Value = txtBoxName.Text;
sqlcomm.Parameters.AddWithValue("@pk", SqlDbType.VarChar).Value = pk;
您对数据库运行命令:
sqlCon.Open();
sqlcomm.ExecuteNonQuery();
现在,有更好的方法来构建所有这些。 (当然,几乎总有更好的方法可以做任何事情。)但在理想的情况下,这段代码所做的事情非常清楚。