0
단추 클릭 이벤트에 다음 코드를 사용하여 값을 업데이트하고 있습니다. 행이 아직 존재하지 않으면 테이블에 새 행을 삽입하려고합니다. 버튼을 클릭하면 코드가 실행되지 않습니다. 두 저장 프로시 저는 일반적인 삽입 및 갱신 SQL 문입니다.SQL Server 업데이트 (존재하지 않는 경우) 새 레코드 삽입
의견이 있으십니까? 정말 고맙습니다!
SqlConnection con = new SqlConnection(conn.GetConnectionString());
SqlCommand cmdnew = new SqlCommand();
cmdnew.CommandType = CommandType.StoredProcedure;
cmdnew.Connection = con;
cmdnew.CommandText = "dbo.UpdateMagtoSpec";
cmdnew.Parameters.AddWithValue("@SpecNo", DropDownList1.SelectedText);
cmdnew.Parameters.AddWithValue("@TestID", ddl_testclass.SelectedValue);
cmdnew.Parameters.AddWithValue("@Max", TextBox6.Text);
cmdnew.Parameters.AddWithValue("@Typical", TextBox8.Text);
cmdnew.Parameters.AddWithValue("@Min", TextBox7.Text);
cmdnew.Parameters.AddWithValue("@Comments", TextArea2.Text);
cmdnew.Parameters.AddWithValue("@Unit", ddl_units.SelectedText);
con.Open();
SqlDataReader rdr = null;
rdr = cmdnew.ExecuteReader();
if (rdr.HasRows)
{
try
{
cmdnew.ExecuteNonQuery();
Alert.Show("Changes Saved!", MessageBoxIcon.Information);
btn_edit.Hidden = false;
Button1.Hidden = true;
Button2.Hidden = true;
TextBox6.Readonly = true;
TextBox7.Readonly = true;
TextBox8.Readonly = true;
ddl_units.Readonly = true;
TextArea2.Readonly = true;
}
catch (Exception ex)
{
if (ex.Message.ToString().Contains("Error"))
{
Alert.Show("Modification Failed!", MessageBoxIcon.Information);
}
}
con.Close();
}
else
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
cmd.CommandText = "dbo.InsertMagtoSpec";
cmd.Parameters.AddWithValue("@SpecNo", DropDownList1.SelectedText);
cmd.Parameters.AddWithValue("@TestID", ddl_testclass.SelectedValue);
cmd.Parameters.AddWithValue("@Max", TextBox6.Text);
cmd.Parameters.AddWithValue("@Typical", TextBox8.Text);
cmd.Parameters.AddWithValue("@Min", TextBox7.Text);
cmd.Parameters.AddWithValue("@Comments", TextArea2.Text);
cmd.Parameters.AddWithValue("@Unit", ddl_units.SelectedText);
try
{
cmd.ExecuteNonQuery();
Alert.Show("Records Saved!", MessageBoxIcon.Information);
}
catch (Exception ex)
{
if (ex.Message.ToString().Contains("Error"))
{
Alert.Show("Modification Failed!", MessageBoxIcon.Information);
}
}
con.Close();
}
당신이 오류의 어떤 종류를 어떻게해야합니까 :
당신은 두 부분이 필요하십니까? – smr5'UpsertMagtoSpec'과 같은 두 개의 procs를 병합하고 거기에 레코드가 있는지 확인한 다음 업데이트하고, 그렇지 않으면 삽입하십시오. – Habib
@Sam 버튼을 클릭해도 아무런 변화가 없습니다. 오류가 없습니다. 감사. – Ivancao