2014-11-12 3 views
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(); 
}   
+0

당신이 오류의 어떤 종류를 어떻게해야합니까 :

당신은 두 부분이 필요하십니까? – smr5

+1

'UpsertMagtoSpec'과 같은 두 개의 procs를 병합하고 거기에 레코드가 있는지 확인한 다음 업데이트하고, 그렇지 않으면 삽입하십시오. – Habib

+0

@Sam 버튼을 클릭해도 아무런 변화가 없습니다. 오류가 없습니다. 감사. – Ivancao

답변

0

버튼 클릭 선언을 사용하여 aspx 코드를 표시하십시오. 대부분의 경우 코드를 이벤트에 연결해야합니다.

<asp:Button id="Button1" 
      Text="Click here for greeting..." 
      OnClick="GreetingBtn_Click" 
      runat="server"/> 

그리고

void GreetingBtn_Click(Object sender, 
          EventArgs e) 
    { 
     // When the button is clicked, 
} 
+0

감사합니다. 이것들은 이벤트의 모든 코드입니다. – Ivancao

관련 문제