我正在尝试设置(以编程方式或不是)指定数据集中的命令超时(A),现在我有我的MVC模型,我已经创建了几个不同的数据集(A,B,C ... N)存储过程,我只需要为一个数据集延长此时间(A ...再次 - .-),此外我已经看到了相关的不同问题,但没有一个解决了我的问题。我在下面给你看了我的代码:
private static DAL.CopyCoinDataFromOracle.CoinDataTableAdapters.spCopyCoinDataTableAdapter cdOracle =
new DAL.CopyCoinDataFromOracle.CoinDataTableAdapters.spCopyCoinDataTableAdapter();
public static bool CopyInformationFromOracle()
{
bool? statusMethod = false;
cdOracle.CopyCoinDataFromOracle(ref statusMethod); //This is where I have the problem and the exception is thrown after 30 seconds are reached
return Convert.ToBoolean(statusMethod);
}
为了清楚起见,“cdOracle”是我的表适配器,我的存储过程链接到“CopyCoinDataFromOracle”方法,该查询第一次需要60seg执行,这就是为什么我想增加那个时间(通过默认30 seg。),信息从带有oracle的链接服务复制到SQL Server。您可以给予任何帮助。
提前致谢。
答案 0 :(得分:0)
我终于解决了我的问题,感谢this related question in stackoverflow,链接由@regeit提供,这是我的解决方案:
我按照帖子所说的创建了这个类(但是没有给出详细的解释!)用以下方法:
using System;
using System.Data.SqlClient;
using System.Reflection;
namespace DAL.CopyCoinDataFromOracle.CoinDataTableAdapters
{
partial class spCopyCoinDataTableAdapter : System.ComponentModel.Component
{
public spCopyCoinDataTableAdapter(int Timeout)
{
SetCommandTimeout(Timeout);
}
public void SetCommandTimeout(int Timeout)
{
foreach (var item in SelectCommand())
{
item.CommandTimeout = Timeout;
}
}
private System.Data.SqlClient.SqlConnection GetConnection()
{
return GetProperty("Connection") as
System.Data.SqlClient.SqlConnection;
}
private SqlCommand[] SelectCommand()
{
return GetProperty("CommandCollection") as SqlCommand[];
}
private Object GetProperty(String s)
{
return this.GetType().GetProperty(s, BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.Instance).GetValue(this, null);
}
}
}
“DAL”是我的类库,“CopyCoinDataFromOracle”是一个包含我的数据集的文件夹,“CoinDataTableAdapter”是命名空间的名称,现在我把这段代码放在我的tableadapter的代码中,名为“CopyCoinData.xsd”(只是双clic并擦除自动生成的代码来创建它。)
最后如何使用它:
private static DAL.CopyCoinDataFromOracle.CoinDataTableAdapters.spCopyCoinDataTableAdapter cdOracle =
new DAL.CopyCoinDataFromOracle.CoinDataTableAdapters.spCopyCoinDataTableAdapter(80);
其中80表示将在对象的构造函数中设置的超时,请让我们知道更多问题。
希望能提供帮助。