Setting CommandTimeOut di TableAdapter

Secara default, TableAdapter menggunakan TimeOut 30s untuk setiap interaksi-nya ke database. Namun ada kalanya suatu transaksi database membutuhkan waktu yang lebih lama dari 30s. Sayangnya TableAdapter tidak menyediakan akses secara langsung ke parameter TimeOut ini karena semua object yang diperlukan untuk interaksi dengan database dibuat secara on the fly saat dibutuhkan.

image
part of generated code at xxx.Designer.cs

Disinilah Partial Class berguna untuk membuat agar CommandTimeOut dapat diakses oleh source code kita.

1. Buka file .xsd tempat TableAdapter yang hendak kita buat agar CommandTimeOut dapat diakses seperti pada gambar dibawah ini;

image

2. Sorot TableAdapter yang diinginkan dan klik kanan. Pilih View Code dari PopUp Menu;

image

3. Visual Studio akan membuka file cs yang sesuai dan akan langsung menunjuk ke arah Partial Class yang relevan;

image

4. Tambahkan code berikut di dalam partial class yang relevan itu:

        public int CommandTimeout
        {
            get
            {
                return (this._adapter.InsertCommand.CommandTimeout);
            }

            set
            {
                this._adapter.InsertCommand.CommandTimeout = value;
                this._adapter.UpdateCommand.CommandTimeout = value;
                this._adapter.DeleteCommand.CommandTimeout = value;
                foreach (System.Data.SqlClient.SqlCommand SelectCommand in this._commandCollection)
                {
                    if (SelectCommand != null)
                    {
                        SelectCommand.CommandTimeout = value;
                    }
                }
            }
        }

5. Simpan dan tutup file tersebut

6. Sekarang anda sudah dapat mengakses CommandTimeOut dari TableAdapter di dalam source code. Contoh di bawah ini merubah TimeOut menjadi 120s atau 2 menit.

image

Leave a Reply

Your email address will not be published. Required fields are marked *