نمایش نتایج 1 تا 4 از 4

نام تاپیک: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is n

  1. #1
    کاربر دائمی آواتار forodo
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شهر جدید پردیس
    پست
    1,468

    Timeout expired. The timeout period elapsed prior to completion of the operation or the server is n

    سلام
    من قبلاٌ چندتا تابع داشتم که با هم کاری رو انجام می دادند و خیلی سریع انجام میشد ولی الان که داخل تراکنش قرارشون دادم یکی از تابع هام هست که خیلی دیر انجام میشه و به خاطر همین قضیه اروره زیر رو می ده که یعنی داخل کش می ره و باعث می شه که به من مقدار خالی برگردونه و کل تراکنش رو می ترکونه.
    چرا اینجوری شده؟
    ارور:
    کد HTML:
    Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
    کدها:
                UseDate uddd = new UseDate();
    frmFonoshtDesc FonoshtDesc = new frmFonoshtDesc();
    FonoshtDesc.Tag = "توضیح صادره";
    FonoshtDesc.ShowDialog();
    SqlTransaction Transaction;
    SqlConnection con = new SqlConnection(clsForms.ConnectionString);
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    cmd.CommandType = CommandType.Text;
    con.Open();
    Transaction = con.BeginTransaction();
    cmd.Transaction = Transaction;
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    try
    {
    cmd.CommandText = @"UPDATE tblLetterSadere
    SET ControlProzheFinish = 1, FonoshtDesc = N'" + "کنترل پروژه" + "-" + Program.FonoshtDesc + "' WHERE NumberForAC = (SELECT NumberForAC FROM tblLetterSadere WHERE ID = " + Program.LetterID + ")";



    cmd.ExecuteNonQuery();
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    MessageBox.Show(NACFunctionBaygani());
    return;
    string NumberIdAC = NACFunctionBaygani();
    string lvlvevel = CatchLevel();

    cmd.CommandText = @"INSERT INTO tblDaryafti(SadereLetterID,ErjaDate,ErjaTime,Level L, NumberForAC
    )
    VALUES(
    @SadereLetterID,@ErjaDate,@ErjaTime,@LevelL, @NumberForAC
    )";
    cmd.Parameters.Clear();
    cmd.Parameters.AddWithValue("@SadereLetterID", NumberIdAC);
    cmd.Parameters.AddWithValue("@ErjaDate", uddd.GhamariToShamsi());
    cmd.Parameters.AddWithValue("@ErjaTime", uddd.TimeEightCharacter());
    cmd.Parameters.AddWithValue("@LevelL", lvlvevel + "-" + "بایگانی" + " (اختتام نامه)" + " " + uddd.GhamariToShamsi().ToString() + " " + uddd.TimeEightCharacter().ToString());
    cmd.Parameters.AddWithValue("@NumberForAC", NumberIdAC);

    cmd.ExecuteNonQuery();
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    Transaction.Commit();
    MessageBox.Show("جریان نامه مورد نظر به اتمام رسید", "ثبت اطلاعات"
    , MessageBoxButtons.OK, MessageBoxIcon.Information);
    this.Close();

    }
    catch (Exception)
    {
    Transaction.Rollback();
    MessageBox.Show("در ارتباط با بانک اطلاعاتی مشکلی پیش آمده است", "خطا درون بانک اطلاعاتی", MessageBoxButtons.OK, MessageBoxIcon.Error);
    this.Close();
    }
    finally
    {
    con.Close();
    }

    و این هم اون تابعیه که طول می کشه و ارور روی کشش داده میشه:
            private string NACFunctionBaygani()
    {
    SqlConnection objconnection =
    new SqlConnection(clsForms.ConnectionString);
    try
    {
    MessageBox.Show(Program.LetterID.ToString());

    SqlDataAdapter objDataAdapter = new SqlDataAdapter();
    DataSet objDataSet = new DataSet();

    objDataAdapter.SelectCommand = new SqlCommand();
    objDataAdapter.SelectCommand.Connection = objconnection;

    objDataAdapter.SelectCommand.CommandText =
    @"SELECT NumberForAC
    FROM tblLetterSadere
    WHERE ID = " + Program.LetterID;


    objDataAdapter.SelectCommand.CommandType = CommandType.Text;

    objconnection.Open();
    objDataAdapter.Fill(objDataSet, "tblLetterSadere");
    objconnection.Close();

    return objDataSet.Tables["tblLetterSadere"].Rows[0]["NumberForAC"].ToString();
    }
    catch (Exception)
    {
    return "";
    }
    finally
    {
    objconnection.Close();
    }
    }

  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: Timeout expired. The timeout period elapsed prior to completion of the operation or the se

    احتمالا مشکل به این خاطره که شما قبل از NACFunctionBaygani با ایجاد Transaction و Update جدول tblLetterSadere، باعث ایجاد Lock روی این جدول میشین. با فراخوانی NACFunctionBaygani و استفاده از Connection جدید، متد Fill شئ objDataAdapter میخواد در جدول tblLetterSadere بنویسه ولی به دلیل وجود Lock منتظر میمونه.
    دقیقا متوجه نشدم شما چکار میخواین بکنین ولی فکر میکنم باید متد NACFunctionBaygani رو با همون Connection قبلی اجرا کنید نه اینکه یک Connection جدید ایجاد کنید.

  3. #3
    کاربر دائمی آواتار forodo
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شهر جدید پردیس
    پست
    1,468

    نقل قول: Timeout expired. The timeout period elapsed prior to completion of the operation or the se

    دستت درد نکنه که جواب دادی.
    یعنی چی لاک می کنه؟
    مشکل رو برطرف کردم.
    به جای
    string NumberIdAC = NACFunctionBaygani();

    که یه مقداری داخل NumberIdAC ریخته می شد مستقیماً کوئری داخل تابع NACFunctionBaygani رو داخل اینسرت گذاشتم.
    یعنی به جای @NumberForAC داخل VALUE کوئری رو قرار دادم و درست شد.
    ولی اگه دلیلش رو بدونم چی بود خیلی عالی میشه.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: Timeout expired. The timeout period elapsed prior to completion of the operation or the se

    در مورد Transaction و تاثیرش روی قفل شدن جدول ها مطالعه کنید. منظور این هست که کدی که در داخل متد نوشتین و در یک Connection دیگه اجرا میشه، امکان دسترسی به جدولی که در Transaction اول در حال استفاده هست رو نداره و منتظر میمونه تا Transaction اول تموم بشه در صورتی که Transaction اول هم برای اتمام منتظر تموم شدن متد هست. در واقع یک بن بست ایجاد شده.

تاپیک های مشابه

  1. مشکل Timeout expired. لطفا
    نوشته شده توسط mhaeri در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: دوشنبه 06 آبان 1392, 08:35 صبح
  2. مشکل Timeout expired. The timeout period elapsed prior to completion of the operation or the serve
    نوشته شده توسط erfan1391 در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: سه شنبه 16 خرداد 1391, 16:42 عصر
  3. اررور timeout expire
    نوشته شده توسط nazaninam در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: شنبه 21 اسفند 1389, 20:21 عصر
  4. تنظیم CommandTimeout برای حل مشکل Timeout expired
    نوشته شده توسط fereshte22 در بخش VB.NET
    پاسخ: 7
    آخرین پست: چهارشنبه 14 شهریور 1386, 12:26 عصر
  5. The beta period has expired
    نوشته شده توسط Boo Ali در بخش VB.NET
    پاسخ: 1
    آخرین پست: یک شنبه 30 بهمن 1384, 22:53 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •