如何以编程方式覆盖OLE DB超时设置?

时间:2014-12-31 19:38:09

标签: c# asp.net connection-string dynamics-crm-2013

我们遇到更新SystemUser记录名称的问题,因为CRM然后尝试更新SystemUserId在Record1Id或Record2Id中的所有连接记录(分别更新“Record1IdName”和“Record2IdName”属性)并且错误输出SQL Server超时错误。我们在这里谈论几百万个ConnectionBase记录

据我所知,我们可以增加服务器上的OLE DB超时,但有没有办法在C#代码中以编程方式执行此操作而无需更改app / async服务器的注册表?

或者,有没有办法阻止CRM进行这些更新?

1 个答案:

答案 0 :(得分:1)

这是命令超时问题而不是连接超时问题,执行和完成命令的默认值是30秒。

OleDbCommand类具有CommandTimeout属性,可以通过编程方式设置。

http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommand.commandtimeout%28v=vs.110%29.aspx

为什么不使用SqlClient本机ADO.NET类?

回答您的问题,为什么Crm需要更新Record1IdNameRecord2IdName,以允许您的视图显示相关记录的名称而无需加入。这就是为什么更新需要通过WS,如果你不通过WS进行更新然后你需要知道后果是什么,我总是会通过WS更新{{1}记录等或任何启动任何工作流程的列。