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

نام تاپیک: استفاده از Backgroundworker برای Insert کردن همزمان داده ها در Sql

  1. #1
    کاربر دائمی آواتار behiunforgiven
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    سن
    37
    پست
    172

    استفاده از Backgroundworker برای Insert کردن همزمان داده ها در Sql

    با سلام خدمت دوستان

    من میخواستم تعداد زیادی از داده ها رو همزمان درون دیتابیس وارد کنم که برای این کار از Backgroundworker استفاده کردم.

    حالا مشکل این جاست که وقتی این دو تا تابع شروع به کار میکنن (کار این تابع ها وارد کردن داده توی دیتابیس هست) موقع وارد کردن همزمان داده ها توی دیتابیس با خطا مواجه میشم.

    میشن لطفا در این زمینه راهنمایی کنید؟

  2. #2
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: استفاده از Backgroundworker برای Insert کردن همزمان داده ها در Sql

    اگر خطای Cross theard میده اون کدی که دیباگر با این ارور هایلایت میکنه رو در درون این کد بگذارید:
    Invoke(new MethodInvoker(delegate {کد مورد نظر}));

  3. #3
    کاربر دائمی آواتار behiunforgiven
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    سن
    37
    پست
    172

    نقل قول: استفاده از Backgroundworker برای Insert کردن همزمان داده ها در Sql

    نه دوست من، با تشکر از شما خطایی که من با اون مواج میشم به خاطر احتمالا استفاده همزمان از یک Connection و Insert کردن همزمان در پایگاه داده ست.

  4. #4
    کاربر دائمی آواتار masoudmok
    تاریخ عضویت
    مهر 1385
    محل زندگی
    esf
    پست
    229

    نقل قول: استفاده از Backgroundworker برای Insert کردن همزمان داده ها در Sql

    سلام .
    احتمال این همزمانی نزدیک صفر هستش . اصلا صفره . همزمانی وجود نداره . حتی وقتی دارن به قول شما همزمان هم این کارو انجام میدن یه اختلاف حتی خیلی جزیی توی ترتیب اجراشون وجود داره موقع ارسال دستور insert به سرور sql .
    ولی می تونی از stored procedure استفاده کنی . اون موقع خود sql server روی کارایی که انجام میدی زمانبندی دقیقی انجام میده .

  5. #5

    نقل قول: استفاده از Backgroundworker برای Insert کردن همزمان داده ها در Sql

    کدتون و خطایی که میده رو اینجا بذارید تا بدونیم با چه مشکلی طرف هستیم و بهتر بشه کمکتون کرد.
    خطایی که من با اون مواج میشم به خاطر احتمالا استفاده همزمان از یک Connection و Insert کردن همزمان در پایگاه داده ست.
    SQL Server بصورت پیشفرض محدودیتی (غیر از محدودیت های سخت افزاری) برای تعداد کانکشن نداره. حدس من اینه که شما توی تمام Thread های از یک کانکشن استفاده کردید و در زمان باز و بسته کردن کانکشن با خطا مواجه میشید. برای حل این مشکل بهتره توی هر Thread یک کانکشن درست کنید.
    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
    SqlConnection con = new SqlConnection("Connection String");
    ...
    }

  6. #6
    کاربر دائمی آواتار behiunforgiven
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    سن
    37
    پست
    172

    نقل قول: استفاده از Backgroundworker برای Insert کردن همزمان داده ها در Sql

    بله احتمالا مشکل از همینجا باید باشه، با تشکر از دوستانی که راهنمایی کردن، روش کار می کنم و نتیجه رو همین جا می گم

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

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