MySqlCommand超时属性在c#中不能正常工作

本文关键字:常工作 工作 不能 属性 超时 MySqlCommand | 更新日期: 2023-09-27 18:17:53

我使用mysqldatabase并成功在其中创建了storedprocedure。我想在我的c#代码中调用这个存储过程。但是当我调用mysqlcommand时,timeout属性会自动设置为零。

我读到默认值是30。我已经尝试在c#代码和连接字符串中重置超时属性。但我得到错误作为'指定的方法是不支持'。

这是什么原因??有超时值为零的问题吗?

MySqlCommand超时属性在c#中不能正常工作

查看源代码(mysql for .net驱动程序):

#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;
            }
        }