, 당신은 Keys
, OldValues
당신에게 반환됩니다 바인딩 한 할 수있는 행의 값 및 NewValues
특성 : 여기
protected void Gridview1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "update t_sizer_calibration " +
"set " +
"date = @date " +
" time = @time, " +
"name = @name, " +
"lane = @lane, " +
"carriers = @carrier, " +
"rev = @REV, " +
"new_tare = @n_tare, " +
"current_tare = @ctare, " +
"min = @min, " +
"max = @max," +
"sd = @sd, " +
"wai = @wai, " +
"bad_carriers = @badcar, " +
"comments = @comments " +
"where calibration_id = @calibration_id";
// define parameters
cmd.Parameters.Add("@calibration_id", SqlDbType.VarChar).Value = glblID.Text;
cmd.Parameters.Add("@date", SqlDbType.VarChar).Value = gtxtDate.Text;
cmd.Parameters.Add("@time", SqlDbType.VarChar).Value = gtxtTime.Text;
cmd.Parameters.Add("@name", SqlDbType.Int).Value = glblName.Text;
cmd.Parameters.Add("@lane", SqlDbType.Int).Value = Convert.ToInt32(gtxtLane.Text);
cmd.Parameters.Add("@carrier", SqlDbType.Decimal).Value = Convert.ToDecimal(gtxtCarriers.Text);
cmd.Parameters.Add("@REV", SqlDbType.Decimal).Value = Convert.ToDecimal(gtxtREV.Text);
cmd.Parameters.Add("@n_tare", SqlDbType.Decimal).Value = Convert.ToDecimal(gtxtN_Tare.Text);
cmd.Parameters.Add("@ctare", SqlDbType.Decimal).Value = Convert.ToDecimal(gtxtC_Tare.Text);
cmd.Parameters.Add("@min", SqlDbType.Decimal).Value = Convert.ToDecimal(gtxtMin.Text);
cmd.Parameters.Add("@max", SqlDbType.Decimal).Value = Convert.ToDecimal(gtxtMax.Text);
cmd.Parameters.Add("@sd", SqlDbType.Decimal).Value = Convert.ToDecimal(gtxtSD.Text);
cmd.Parameters.Add("@wai", SqlDbType.Decimal).Value = Convert.ToDecimal(gtxtWAI.Text);
cmd.Parameters.Add("@badcar", SqlDbType.Int).Value = Convert.ToInt32(gtxtBadCarriers.Text);
cmd.Parameters.Add("@comments", SqlDbType.VarChar).Value = gtxtComments.Text;
cmd.CommandType = CommandType.Text;
cmd.Connection = this.sqlConnection1;
this.sqlConnection1.Open();
//execute insert statement
cmd.ExecuteNonQuery();
this.sqlConnection1.Close();
//re-populate grid
fill_grid();
GridView1.EditIndex = -1;
GridView1.DataBind();
}
너무 내 rowupdated 방법 이벤트 args. 따라서 컨트롤 값에 액세스 할 필요가 전혀 없습니다.
내가 좋아하는 뭔가를 시도 할 것입니다 :
cmd.Parameters.Add("@calibration_id", SqlDbType.VarChar).Value = e.NewValues["ID"];
cmd.Parameters.Add("@date", SqlDbType.VarChar).Value = e.NewValues["date"];
을 ... 그리고 그 어디를 얻을 수 있는지 확인합니다.
그리고있는 선하는 오류를 던지고있다 : 다음과 같은
? 분명히 도움이 될 수있는 예외 스택 트랙을 복사하여 붙여 넣을 수 있습니다. –
'sqlConnection1'이 (가) null이 아닌가? –
sqlConnection1은 페이지의 글로벌 연결 문자열입니다. 이 페이지에서 몇 번 사용합니다. – briskovich