仅更新asp.net gridview上的选定行
这是一个场景,我已经创建了一个用于超时和超时的程序 有人早上7点进入,下午2点离开 A人|上午7:00 |下午2:00 下午3点a人再次进入 A人|下午3:00 | 当我单击超时按钮时,它将更新超时列,当它更新时,人员A的超时都将更新 这是我的密码仅更新asp.net gridview上的选定行,asp.net,Asp.net,这是一个场景,我已经创建了一个用于超时和超时的程序 有人早上7点进入,下午2点离开 A人|上午7:00 |下午2:00 下午3点a人再次进入 A人|下午3:00 | 当我单击超时按钮时,它将更新超时列,当它更新时,人员A的超时都将更新 这是我的密码 protected void EMPLOYEERECORD_RowUpdating(object sender, GridViewUpdateEventArgs e) { Label lblEditEmpName = (Label)
protected void EMPLOYEERECORD_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
Label lblEditEmpName = (Label)EMPLOYEERECORD.Rows[e.RowIndex].FindControl("lblEditEmpName");
Label lblEditTimeOut = (Label)EMPLOYEERECORD.Rows[e.RowIndex].FindControl("lblEditTimeOut");
TextBox txtEditRemarks = (TextBox)EMPLOYEERECORD.Rows[e.RowIndex].FindControl("txtEditRemarks");
DatabaseModule.SQcon.Open();
string cmdstr = "update dbo.RecordEmployee set TIME_OUT=@timeout, REMARKS=@editRemarks where EMPLOYEE_NAME =@empname";
SqlCommand cmd = new SqlCommand(cmdstr, DatabaseModule.SQcon);
cmd.Parameters.AddWithValue("@empname", lblEditEmpName.Text);
cmd.Parameters.AddWithValue("@editRemarks", txtEditRemarks.Text);
cmd.Parameters.AddWithValue("@timeout", DateTime.Now.ToString("T"));
cmd.ExecuteNonQuery();
DatabaseModule.SQcon.Close();
EMPLOYEERECORD.EditIndex = -1;
BindData();
}
如何仅更新所选行 每一行都需要一个键 你的例子是:
PERSON A| 7:00 AM| 2PM
PERSON A| 3:00 PM|
update语句将更新具有相同员工姓名的所有行。因此,人员A的更新将更新两行
如果还没有,则需要为每一行创建一个唯一的标识符(例如int),以便只更新特定的行
例如,表结构可以是:
1 | PERSON A| 7:00 AM| 2PM
2 | PERSON A| 3:00 PM|
更新语句将更改为:
update <whatever> where RowId = @rowId
更新其中RowId=@RowId