我有一个带有QueriesTableAdapter的DataSet。为了控制SqlCommand.CommandTimeout,我用一个名为ChangeTimeout的公共方法添加了一个名为QueriesTableAdapter的分类。全局控制TableAdapter命令超时
partial class QueriesTableAdapter
{
public void ChangeTimeout(int timeout)
{
foreach (System.Data.SqlClient.SqlCommand cmd in CommandCollection)
{
cmd.CommandTimeout = timeout;
}
}
}
对于每个具有QueriesTableAdapter的DataSet,我可以在执行之前设置CommandTimeout。
using (NameSpace.DataSet.DataSetTableAdapters.QueriesTableAdapter ta =
new NameSpace.DataSet.DataSetTableAdapters.QueriesTableAdapter())
{
ta.ChangeTimeout(3600);
ta.DoSomething();
}
这很好用,因为“QueriesTableAdapter”是在DataSet设计器中为您命名的。我遇到的问题是唯一命名的TableAdapters。例如,如果我有一个名为Person的DataTable和一个名为PersonTableAdapter的TableAdaper,那么我必须以编写QueriesTableAdaper类的相同方式编写PersonTableAdapter分部类。我有数百个具有唯一TableAdapter名称的DataTables。我不想为每个人创建一个部分类。我如何以全局方式访问部分类的底层SqlCommand对象?
贝丽,在那里我会添加这个方法? – 2009-06-10 16:29:43
任何你想要的东西。理想情况下,您可能会创建一个静态帮助器类,并将其作为该类中的静态方法添加。 – BFree 2009-06-10 16:34:48
我的答案是放置方法的替代选项。 – Alex 2010-10-08 21:07:51