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

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

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

SQL עדכון לDataSet

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

    אני מנסה להפעיל פונקציית עדכון לדטה סט,
    שתעבור על הנתונים, תבצע בדיקת אימות ואם הכל כשורה אז תעדכן בבסיס הנתונים.
    לפי מה שראיתי בספר: visual c# 3.0 הם המליצו ליצור מופע חדש של הדטה סט שלי, כשאני קורא בעצם לפונקציית GetChanges() ואת השינויים שומר במופע החדש. ואז על גבי זה מבצע את הבדיקות, ומעדכן אם הכל כשורה.
    הבעיה שלי היא שכאשר אני מנסה לכתוב את הקוד הבא:

    private void Update_Click(object sender, RoutedEventArgs e)
            {
    
                TrialSQL1.AvrTrumaDataSet changes = avrTrumaDataSet.GetChanges();
                try
                {               
                    if(changes==null)
                    {
                        return;
                    }
    

    אז הוא לא מכיר את המופע avrTrumaDataSet, ובצדק כיון שהוא הוגדר במתודה הקודמת והוא לא בתוך טווח ההכרה שלו.
    מאידך אם אני אצור מופע חדש בשם הזה זה לא יעזור לי, כיון שאני רוצה שהוא ידווח לי על השינויים שנעשו במופע שנוצר כבר ועבר שינוי ע"י המשתמש.
    א"כ מה עלי לעשות?
    תודה רבה!

    פורסם במקור בפורום CODE613 ב14/07/2015 01:29 (+03:00)

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

      לא מובן לי. איפה הצהרת על הDS שמופיע בתצוגות? בתוך מתודה? תוכל להראות או להסביר?

      הצלחה!

      פורסם במקור בפורום CODE613 ב14/07/2015 11:46 (+03:00)

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

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

      תגובה 1 תגובה אחרונה
      0
      • A מנותק
        A מנותק
        avr416
        כתב ב נערך לאחרונה על ידי
        #3

        כן, הVS יצר את המתודה הזאת (שהזכרתי בשאלה הקודמת:

        private void Window_Loaded(object sender, RoutedEventArgs e)
                {
        
                    TrialSQL1.AvrTrumaDataSet avrTrumaDataSet = ((TrialSQL1.AvrTrumaDataSet)(this.FindResource("avrTrumaDataSet")));
                    // Load data into the table Person. You can modify this code as needed.
                    TrialSQL1.AvrTrumaDataSetTableAdapters.PersonTableAdapter avrTrumaDataSetPersonTableAdapter = new TrialSQL1.AvrTrumaDataSetTableAdapters.PersonTableAdapter();
                    avrTrumaDataSetPersonTableAdapter.Fill(avrTrumaDataSet.Person);
                    CollectionViewSource personViewSource = ((CollectionViewSource)(this.FindResource("personViewSource")));
                    personViewSource.View.MoveCurrentToFirst();
                   
                }
        

        תודה!

        פורסם במקור בפורום CODE613 ב14/07/2015 14:51 (+03:00)

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

          אז תכתוב ככה:

          TrialSQL1.AvrTrumaDataSet avrTrumaDataSet = ((TrialSQL1.AvrTrumaDataSet)(this.FindResource("avrTrumaDataSet")));
          TrialSQL1.AvrTrumaDataSet changes = avrTrumaDataSet.GetChanges();
          

          או קצר:

          var changes = ((TrialSQL1.AvrTrumaDataSet)(this.FindResource("avrTrumaDataSet"))).GetChanges();
          

          פורסם במקור בפורום CODE613 ב14/07/2015 15:19 (+03:00)

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

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

          תגובה 1 תגובה אחרונה
          1
          • A מנותק
            A מנותק
            avr416
            כתב ב נערך לאחרונה על ידי
            #5

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

            מהי הדרך המומלצת?
            לפי מה שאני מבין עכשיו נראה לי שכשאני בונה טופס בו המשתמש מזין את כל הפרטים מחדש - אז עדיף לעדכן באמצעות newRow וכך לעשות בדיקה על כל הנתונים, (כיון שידוע לי בדיוק מה המשתמש משנה). אולם, כשאני מציג לו את כל הטבלה ויכול להיות שהוא ביצע שינויים בהרבה מקומות ואינני יודע איפה עדיף להשתמש במתודה GetChanges.
            תודה רבה רבה!!

            פורסם במקור בפורום CODE613 ב14/07/2015 15:25 (+03:00)

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

              לא כ"כ ברור לי מה שתי הדרכים שאתה שואל איזו להעדיף. NewRow והמתודה GetChanges לא מתחרים כלל על אותה המשבצת. בנוסף אני לא יודע איזו בדיקה אתה מבצע.
              אבל שתדע לך, מאוד קשה לי לתת לך פרקטיקות טובות בDB, כי פשוט לא היה לי אף פעם. אכלתי המון קש. מזכיר לי משפט של מורה "אתם לא יכולים ללמוד מהטעיות שלי. אתם חייבים לעשות טעויות משלכם כדי ללמוד" :).

              פורסם במקור בפורום CODE613 ב14/07/2015 18:27 (+03:00)

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

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

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

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

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

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