从C#调用时,MySQL存储过程超时

时间:2010-06-10 14:07:43

标签: c# mysql stored-procedures transactions

SP_A是一个调用SP_B的存储过程,然后执行SELECT,然后更新SP_B刚刚更新的相同记录/列。 SP_A在SELECT和UPDATE语句周围有一个TRANSACTION,后跟一个COMMIT。

现在,当我从MySQL命令提示符调用SP_A时,一切正常。但是,当我从C#调用它时,它每次都会超时。

奇怪的是,如果我更改SP_A以便它不会调用SP_B,而是从C#代码调用SP_B再调用SP_A,则可以。这是为什么?

我仍在努力确切地确定问题所在。它可能是:

  • 您无法呼叫呼叫另一个SP的SP
  • 你不能调用一个调用另一个SP的SP来更新与被调用者UPDATES相同的记录
  • 当涉及交易时,您无法执行上述操作

请记住,只有在使用MySqlCommand

从C#运行时才会出现此问题



注意:
MySql.Data v2.0.50727
MySQL Connector Net 6.2.2
适用于MySQL的ADO.Net驱动程序
.NET Framework 4

1 个答案:

答案 0 :(得分:2)

听起来CommandTimeout是问题 - >当“长”查询发生时,.NET Connector将超时。增加CommandTimeout阈值应该允许查询/过程工作。

注意:超时以秒为单位。