我有一个带有 QueriesTableAdapter 的数据集。为了控制 SqlCommand.CommandTimeout,我添加了一个名为 QueriesTableAdapter 的部分类和一个名为 ChangeTimeout 的公共方法。
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 设计器中为您命名的。我遇到的问题是唯一命名的 TableAdapter。例如,如果我有一个名为 Person 的 DataTable 和一个名为 PersonTableAdapter 的 TableAdaper,我必须以与编写 QueriesTableAdaper 类相同的方式编写一个 PersonTableAdapter 部分类。我有数百个具有唯一 TableAdapter 名称的 DataTable。我不想为每一个创建一个部分类。如何以全局方式访问部分类的基础 SqlCommand 对象?