2013-10-27 2 views
0

switch 명령문에서 명령을 사용하고 업데이트하려고하지만 실행 중에 전혀 업데이트되지 않고 무엇이 잘못되었는지 잘 모릅니다.Switch 명령문에서 update 명령 사용

protected void update() 
{ 
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnection"].ConnectionString); 
    SqlCommand Mycmd = new SqlCommand();  
    SqlDataAdapter da = new SqlDataAdapter("SELECT ID, Name, Stage from Mytable WHERE ID= @ID ", con); 
    DataTable dt = new DataTable(); 
    da.SelectCommand.Parameters.AddWithValue("@ID", (ID)); 
    da.Fill(dt); 

    foreach (DataRow row in dt.Rows) 
    { 
     switch (Convert.ToString(row["Stage"])) 
     { 
      case "1":      
       string myStage= txtStageLevel.Text; 
       Mycmd.CommandText = "UPDATE Mytable SET [email protected]"; 
       break; 
     } 
+0

을 연결을 열 그렇다면 당신은'Mycmd.ExecuteNonQuery()'호출 코드는? –

+1

또한'@ myStage'을 매개 변수로 실제로 추가하는 부분이 누락되었습니다 .-) – BrokenGlass

답변

2

ExecuteNonQuery는 호출의 매개 변수 @myStage의 설정과 연결이 명령에 할당되지 않은 누락 : 여기 내 코드입니다. 결국 코드를 ​​

case "1": 
    using(SqlCommand myCmd = new SqlCommand("UPDATE Mytable SET [email protected]", con) 
    { 
     myCmd.Parameters.AddWithValue("@myStage", txtStageLevel.Text); 
     myCmd.ExecuteNonQuery(); 
    } 
    break; 

으로 변경하고 메소드 시작 부분에서 MyCmd 선언을 제거하십시오.

마지막으로 ... 스위치 케이스에 들어가기 전에 코드에서 explicitily

+0

누군가 설명없이 당신을 하향 전화 할 때 항상 강조합니다. 오 잘 ... – Steve

+0

나는 처음에 당신이 코멘트 였음에 틀림없는 자리 표시 자 답을 넣었 기 때문에 아래로 내려갔습니다. – BrokenGlass

+0

좋아요, 나는 즉시 ExecuteNonQuery가 부족하다는 것을 알아 챘으며 이는 거의 논평이 아닙니다. 그러나 다른 문제가 생겼고 (5 분 안에) 나는 모두 설명했다. – Steve