MySqlCommand超时属性在c#中不能正常工作
本文关键字:常工作 工作 不能 属性 超时 MySqlCommand | 更新日期: 2023-09-27 18:17:53
我使用mysqldatabase并成功在其中创建了storedprocedure。我想在我的c#代码中调用这个存储过程。但是当我调用mysqlcommand时,timeout属性会自动设置为零。
我读到默认值是30。我已经尝试在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;
}
}