2013-06-11 3 views
-2

개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 3 계층을 통해 gridview에서 행을 삭제하는 중 오류가 발생했습니다.

데이터 액세스 계층에 내가 삭제하는 동안 ... 내 격자보기

이에에서 행 점점 메신저 오류 .. page_로드

gvDetails.DataSource =myBl.DeleteAllCountry(int.Parse(gvDetails.SelectedRow.ToString())); 

입니다

public DataTable DeleteCountry(int country_id) 
    { 
     DataTable dltcontry = new DataTable(); 
     SqlConnection con = new SqlConnection(@"Data Source=a8-pc\sqlexpress;Integrated Security=True"); 
     SqlDataAdapter da; 
     try 
     { 
      SqlCommand cmd = new SqlCommand(); 
      cmd.connection= con; 
      cmd.CommandType = CommandType.StoredProcedure; 
      cmd.CommandText = "sp_DeleteCountry"; 
      con.Open(); 
      da = new SqlDataAdapter(cmd); 
      cmd.Parameters.AddWithValue("country_id", @country_id); 
      cmd.ExecuteNonQuery(); 
      da.Fill(dltcontry); 
      con.Close(); 
     } 

및 비즈니스 계층의 코드는

입니다.
public DataTable DeleteAllCountry(int country_id) 
    { 
    return mydtLayer.DeleteCountry(country_id); 
    } 
+0

질문을 올바르게 형식화하고 적절한 영어를 사용하십시오 .. SMS가 아닙니다. – Asha

+0

삭제를위한 프로 시저가 저장되어 있으며 'ExecuteNonQuery'를 호출하여 삭제할 수 있지만 데이터를 가져 오는 데 다시 같은 이유로 사용하는 이유는 무엇입니까? – Damith

+0

질문을 더 명확하게 기술하십시오. 이 예외는 NullPointer 예외처럼 보입니다. 일반적으로 디버그 출력은 스택 추적을 포함하여 예외가 발생한 행 번호를 제공합니다. 해당 줄 번호를 사용하여 오류를 자세히 조사하십시오. –

답변

0

해결하기 위해 우선, 당신은 당신의 명령

cmd.Connection =con; 

또는 당신이 시도 또 다른 문제는 값

을 int로 gvDetails.SelectedRow을 선택 변환하는

SqlCommand command = new SqlCommand(
      queryString, connection); 

아래와 같이 생성자에서 연결을 설정해야

확인 gvDetails.selectedRows.Count 선택한 행의 값을 얻기 전에

당신은 당신이 다음 int.TryParse를 사용하여 지금

gvDetails.SelectedRow.cells("country_id").Text 

당신이 int 값이 변환 할 수 아래로 country_id 열의 셀 가치있는을 얻을 수있는 선택을하고 성공 인 경우 삭제하도록 BL 함수로 보내는 경우 레코드

+0

그 일을 ...하지만 어떻게 여전히 그 오류를 받고 해결하는 방법 – user2473216

+0

어떤 라인? 디버그하고 어떤 행과 어떤 객체가 null인지 확인하십시오. – Damith

+0

gvDetails.DataSource = myBl.DeleteAllCountry (int.Parse (gvDetails.SelectedRow.ToString())); – user2473216

관련 문제