דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. DataSet-Delete DBConcurrencyException

DataSet-Delete DBConcurrencyException

מתוזמן נעוץ נעול הועבר ארכיון code613m
2 פוסטים 2 כותבים 222 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    שמואל
    כתב ב נערך לאחרונה על ידי
    #1

    כאשר אני מוחק שורות מהדטה סט בטבלת הבנים ולאחר מכן אני בא לעדכן בבסיס הנתונים
    עולה לי השגיאה שלהלן
    אני מצרף קוד ותמונות להשלמת הבנת העניין

    במקרה שלהלן אני מוחק רק את השורות של טבלת האב בדטה סט וממיילא על ידי ההגדרה בקשר גומלין נמחקים שורות הילדים
    כל הבעיה היא כאשר אני עושה אפדיט

    מקווה שהסברתי ברור
    אשמח אם מישהוא יוכל לעזור
    תודה

    if (teudaLetipul.GetParentTableRows().Count() > 0)
    {
        while (teudaLetipul.GetGetParentTableRows().Length > 0)
        {
            teudaLetipul.GetGetParentTableRows()[0].Delete();
        }
    	
        dta_childarenTable.Update(dts.childarenTable);
        dta_GetParentTable.Update(dts.GetParentTable);
    }
    

    שגיאה.PNG
    קשר גומלין.PNG

    פורסם במקור בפורום CODE613 ב18/12/2013 19:25 (+02:00)

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      השגיאה הזאת בעצם אומרת, אני לא יודעת מה קרה, אבל תכלס לא נעשו שינויים במסד אפי' שלטעמי היו צריכים להיעשות.
      במקרה זה היא מצביעה שהייתה שורה אחת שאמורה להיות מושפעת, ובכל אופן המסד אמר ש0 שורות הושפעו.

      מה שחשוב לראות זה מה קרה באמת במסד, ייתכן שפשוט מנסים למחוק פעמיים אותה שורה וכו'.
      כדאי גם לעקוב אחרי שורה ספציפית ולראות את מצבה לפני הUpdate. מצבה אני מתכוון לRowState שלה.

      במקרה זה הבדיקה תהיה ע"י BreakPoint בשורת הUpdate, וכתיבה ב Immediate window:

      ? dts.childarenTable.GetChange().Rows[0].RowState
      

      בנוסף, הערה על הקוד שלך:
      עשית לולאה מאוד טריקית. היא מוחקת כל פעם שורה ראשונה, ועושה זאת שוב אם ישנם עוד שורות.
      היא גם מפעילה על כל איטרציה פעמיים פונקציה GetXXXRows.
      דרך טבעית יותר זה ככה:

      foreach (var row in teudaLetipul.GetGetParentTableRows())
      {
          item.Delete();
      }
      

      פורסם במקור בפורום CODE613 ב18/12/2013 20:38 (+02:00)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      0

      בא תתחבר לדף היומי!
      • התחברות

      • אין לך חשבון עדיין? הרשמה

      • התחברו או הירשמו כדי לחפש.
      • פוסט ראשון
        פוסט אחרון
      0
      • דף הבית
      • קטגוריות
      • פוסטים אחרונים
      • משתמשים
      • חיפוש
      • חוקי הפורום