TableAdapter にタイムアウトを設定する方法

xsd ファイルから作成した TableAdapter は、タイムアウトを設定するためのプロパティが公開されていません。そのため、 TableAdapter にタイムアウトを設定するには、 partial クラスを作成してタイムアウトを取得・設定するプロパティを作成します。

// Sample.xsd を作成した場合、
// それに付随する Sample.cs に
// 以下のようなコードを作成します。
namespace 既定の名前空間.SampleTableAdapters
{
	// クラス名称は、作成した TableAdapter にあわせてください
    public partial class QueriesTableAdapter
    {
        public int CommandTimeout
        {
            get { return CommandCollection[0].CommandTimeout; }
            set
            {
                for (int i = 0; i < this.CommandCollection.Length; ++i)
                {
                    if (CommandCollection[i] != null)
                    {
                        ((System.Data.SqlClient.SqlCommand)
                            (this.CommandCollection[i])).CommandTimeout = value;
                    }
                }
            }
        }
    }
}

タイムアウトを設定するには、以下のようなコードを記述します。

SampleTableAdapters.QueriesTableAdapter adapter =
	new SampleTableAdapters.QueriesTableAdapter();

// タイムアウトを 30 分に設定
adapter.CommandTimeout = 30 * 60;