我有一個帶有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