a

ABLY مقالات و مطالب مجموعه

تغییر دادن مقدار Timeout در SqlCommand

تغییر دادن مقدار Timeout در SqlCommand

بسم الله الرحمن الرحیم

در بعضی اگر شما بخواهید یک دستور اسکیوال را از طریق سی شارپ فراخوانی کنید که مدت زمان اجرای آن دستور بسیار طولانی باشد با خطای زیر مواجه می شوید:

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. The statement has been terminated

برای حل این مشکل شما باید مدت زمان Timeout را در SQL Command افزایش دهید و یا این پارامتر را غیر فعال کنید.

به صورت پیش فرض مدت زمان CommandTimeout در SqlCommand برابر با 30 ثانیه می باشد که شما می توانید به صورت زیر آن را تغییر دهید

SqlCommand sqlCommand= new SqlCommand("select * from table_EduOnline");

SqlCommand.CommandTimeout = 100;//100 secound

و یا با مساوی قرار دادن CommandTimeout برار با 0 آن را غیر فعال کنید

بسم الله الرحمن الرحیم

در بعضی اگر شما بخواهید یک دستور اسکیوال را از طریق سی شارپ فراخوانی کنید که مدت زمان اجرای آن دستور بسیار طولانی باشد با خطای زیر مواجه می شوید:

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. The statement has been terminated

برای حل این مشکل شما باید مدت زمان Timeout را در SQL Command افزایش دهید و یا این پارامتر را غیر فعال کنید.

به صورت پیش فرض مدت زمان CommandTimeout در SqlCommand برابر با 30 ثانیه می باشد که شما می توانید به صورت زیر آن را تغییر دهید

SqlCommand sqlCommand= new SqlCommand("select * from table_EduOnline");

SqlCommand.CommandTimeout = 100;//100 secound

و یا با مساوی قرار دادن CommandTimeout برار با 0 آن را غیر فعال کنید

SqlCommand.CommandTimeout = 0;// disable

با استفاده از دستور Delay  می توانید این خاصیت را تست کنید، مثال:

  static void Main(string[] args)

        {

            string cString = @"Data source=<your server>;Integrated Security=SSPI;Initial Catalog=Northwind";

            using (SqlConnection sc = new SqlConnection(cString))

            {

                try

                {

                    SqlCommand cmd = new SqlCommand("waitfor delay '00:00:30';select * from Shippers", sc);

                    cmd.CommandTimeout = 10;

                    Console.WriteLine("CommandTimeout: {0}", cmd.CommandTimeout);

                    sc.Open();

                    SqlDataReader r = cmd.ExecuteReader();

                    while (r.Read())

                        Console.WriteLine("{0} : {1}", r[0].ToString(), r[1].ToString());

                    sc.Close();

                }

                catch (SqlException se)

                {

                    Console.WriteLine(se);

                }

            }

        }

نظرات

  • Hannah Martinez
    مهدی
    یک شنبه 11 خرداد 1399 12:06

    سلام

    من نرم افزاری رو میخام نصب کنم که با همین ارور time period has expired مواجه میشم.

    چه جوری میتونم time period رو در ویندوز 10 تغییر بدم که مشکل رفع بشه؟

    در محیط commond prompt این دستور شما رو می نویسم ولی ارور میده و این دستور رو نمیشناسه.

    لطفا راهنمایی کنید که چه جوری تغییر بدم؟

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :Phone Number
0713 625 1757 :Phone Number