2012-01-24 14 views
0

私はMySQL Connector for ASP.NETを使用してMySQLサーバーからデータを取得しています。すべて正常に動作しているようですが、私のページの最初の非同期ポストバック時に、MySQLDataAdapterは自分のDataSetを埋めることはありません。完全リフレッシュ後、データは非同期ポストバックによって正常にロードされます。MySqlDataAdapterが最初の負荷でデータを取得できませんでした

コマンドのタイムアウトに大きな値を割り当てようとしましたが、うまくいかないようです。

これはローカルではなく、本番サーバーでのみ発生します。

私は、要求文字列を表示することによって、また各非同期ポストバック(DS.table [0] .rowsのcount()を表示)でも塗りつぶしが機能しないことを確認しました。

これは実際には動作しないfillメソッドです。

 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を2回呼び出すのは良い考えではありません。 – H27studio

0

あなたはPage.isPostBackのプロパティを確認しましたか? isPostbackを正しくチェックしていない可能性があります。あなたの方法全体を共有するなら、それは役に立ちます。

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

データを取得する私の関数の名前が "FillDSData"と呼ばれ、ページの最初の読み込み時にすべてのコントロールがupdatepanelに含まれ、それぞれが非同期ポストバックを起動して関数 "FillDSData"を呼び出します。これは失敗する最初のasynpostbackです。 – bor1s

0

コード内のいくつかの調査の後、私は実際には、要求の値が空だった、それが動作しないことがわかっていない... MySQLサーバによってので、何のデータリターン、有効期限が切れたセッションキーがあった... あなたの助けをすべてthx!

関連する問題