2012-01-24 4 views
0

ASP.NET 용 MySQL Connector를 사용하여 MySQL 서버에서 데이터를 검색합니다. 모든 것이 잘 작동하는 것처럼 보이지만, 내 페이지의 첫 번째 비동기 포스트 백에서 MySQLDataAdapter는 내 DataSet을 채우지 않습니다. 완전 새로 고침 후 비동기 포스트 백을 통해 데이터가 성공적으로로드됩니다.MySqlDataAdapter가 첫 번째로드에서 데이터를 검색하지 못했습니다.

더 큰 값을 명령 타임 아웃에 할당하려고 시도하지만 작동하지 않는 것 같습니다.

프로덕션 서버에서만 로컬로 발생하지 않습니다.

요청 문자열을 표시하고 각 비동기 포스트 백 (DS.table [0] .rows의 count() 표시)에서 채우기가 작동하지 않는지 확인했습니다.

이것은 실제로 작동하지 않는 채우기 방법입니다.

 try 
     { 
      using (MySqlConnection conn = new MySqlConnection(_connexionString)) 
      { 
       string requete = ""; 
       DataSet DS = new DataSet(); 

       requete = "SELECT * from MYTABLE"; 

       using (MySqlDataAdapter MSDA = new MySqlDataAdapter(requete, conn)) 
       { 
        DS.Clear(); 
        MSDA.Fill(DS); 
       } 
       conn.Close(); 
       conn.Dispose(); 
      } 
     } 
     catch (MySqlException ex) 
     { 
      l_error.Text = ex.ToString(); 
     } 
+0

데이터 컨트롤을 사용하여이 데이터를 표시하고 있습니까? updatepanel을 사용하는 경우 조건부 모드로 변경하고 다시 게시 할 때 페이지에 데이터를 바인딩 한 후 updatepanelid.update를 호출하십시오. –

+0

'using'문을 사용하면 왜 'conn'인스턴스가 삭제됩니까? – Devart

+0

처리 할 생각 ... 처리를 시도하십시오 .. – bor1s

답변

2

Page_Init 이벤트에도 코드를 삽입 해보십시오.

+0

내가 가지고 게시 코드는 page_load에 호출되는 함수에 포함되어 있지만 내가 page_Init에서 테스트합니다 – bor1s

+0

DB를 두 번 호출하는 것은 좋은 생각이 아닙니다. – H27studio

0

Page.isPostBack 속성을 확인하셨습니까? isPostback을 제대로 확인하지 못했을 수 있습니다. 전체 방법을 공유하면 도움이 될 것입니다.

if(!Page.IsPostBack) 
{ 
    //load your datasets and data - adapters. 
} 
+0

데이터를 검색 할 수있는 함수의 이름이 "FillDSData"이며, 페이지의 첫 번째 로딩을 위해 page_load에서 호출 된 다음 모든 컨트롤이 updatepanel에 포함되어 있으며 각각이 비동기 포스트 백을 실행하여 "FillDSData"함수를 호출합니다. 이것은 실패한 첫 번째 asynpostback입니다. – bor1s

0

코드에서 몇 가지 조사 후, 나는 그것이 작동하지 않는 것이 발견, 요청의 값이 비어 사실 ... 그래서 MySQL 서버로 데이터 복귀 만료이었다 세션 키 ... 없었다 너의 도움을 위해 모두 thx!

관련 문제