2011-12-14 11 views
-1

私はmysqldatabaseを使用していて、ストアドプロシージャを正常に作成しました。私のC#コードでそのストアドプロシージャを呼び出そうとしています。私がmysqlcommandを呼び出すと、 。MySqlCommandタイムアウトプロパティが適切な方法でCで動作しない#

私はデフォルト値であることを読ん30.I'veは、両方のC#コードで、接続でタイムアウトプロパティをリセットしようとしたstring.But「指定されたメソッドがサポートされていません」と、私はエラーを取得しています。

その理由は何ですか?タイムアウト値ゼロに問題はありますか?

+6

あなたはあなたのコードを提供することができますか?デフォルトは30秒です。 –

答えて

1

は、ソースコード(.NET用のMySQLドライバ)を見てください:

#if !CF 
     //[Category("Misc")] 
     //[Description("Time to wait for command to execute")] 
     //[DefaultValue(30)] 
#endif 
     public override int CommandTimeout 
     { 
      get { return useDefaultTimeout ? 30 : commandTimeout; } 
      set 
      { 
       if (commandTimeout < 0) 
        throw new ArgumentException("Command timeout must not be negative"); 

       // Timeout in milliseconds should not exceed maximum for 32 bit 
       // signed integer (~24 days), because underlying driver (and streams) 
       // use milliseconds expressed ints for timeout values. 
       // Hence, truncate the value. 
       int timeout = Math.Min(value, Int32.MaxValue/1000); 
       if (timeout != value) 
       { 
        MySqlTrace.LogWarning(connection.ServerThread, 
        "Command timeout value too large (" 
        + value + " seconds). Changed to max. possible value (" 
        + timeout + " seconds)"); 
       } 
       commandTimeout = timeout; 
       useDefaultTimeout = false; 
      } 
     } 
関連する問題