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

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

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

הוספת שורה שורה לDataSet

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

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

    private void Update_Click(object sender, RoutedEventArgs e)
            {            
                try
                {
                    TrialSQL1.AvrTrumaDataSet avrTrumaDataSet = ((TrialSQL1.AvrTrumaDataSet)(this.FindResource("avrTrumaDataSet")));
                    var donor = avrTrumaDataSet.Person.NewPersonRow();                 
    
                    if(donor==null)
                    {
                        return;
                    }
                    donor["FirstName"] = firstNameTextBox.Text;
                    donor["LastName"] = lastNameTextBox.Text;
                    donor["Adress"] = adressTextBox.Text;
                    donor["Telefon"] = telefonTextBox.Text;
                    donor["Telefon2"] = telefon2TextBox.Text;
                    donor["Email"] = emailTextBox.Text;
                    if (MaleRadioButton.IsChecked == true)
                    {
                        donor["Gender"] = true;
                    }
                    else
                        donor.Gender = false;
                    avrTrumaDataSet.Person.AddPersonRow(donor);
                    avrTrumaDataSet.AcceptChanges();
                    TrialSQL1.AvrTrumaDataSetTableAdapters.PersonTableAdapter avrTrumaDataSetPersonTableAdapter = new TrialSQL1.AvrTrumaDataSetTableAdapters.PersonTableAdapter();
                    avrTrumaDataSetPersonTableAdapter.Update(avrTrumaDataSet.Person);
                }
                catch(Exception ex)
                {
                    MessageBox.Show("Eror: " + ex.Message, "Errors", MessageBoxButton.OK, MessageBoxImage.Error);
                 
                }
            }
        }
    }
    

    תוודה מראש!!

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

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

      לפני שאני מסתכל על ההודעה, ומתחיל לחפש אשמים 🙂
      הDB שלך זה קובץ פיזי?
      אולי הVS משכתב אותו בכל הפעלה מחדש שלך?
      קרה לי בעבר.

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

      אין טסט כמו פרודקשן.

      המייל שלי urivpn@gmail.com

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

        תסיר את השורה 25:

        avrTrumaDataSet.AcceptChanges();
        

        הערות נוספות:

        1. כיון שהשתמשת עם Typed Data Set, אזז חבל לך להשתמש עם אינדקסרים סטרינגיים (donor["FirstName"]) השתמש במקום זאת במאפיינים (donor.FirstName).

        2. התנאי בשורה 8 לא יתקיים אף פעם, ולכן הוא מיותר.

        3. את התנאי בשורה 18 תוכל לפשט, ולכתוב בשורה אחת ככה:

          donor.Gender = MaleRadioButton.IsChecked == true;

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

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

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

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

          @ClickOne

          לפני שאני מסתכל על ההודעה, ומתחיל לחפש אשמים 🙂
          הDB שלך זה קובץ פיזי?

          כן, יצרתי אותו בעצמי דרך ה SQL Server studio.
          @ClickOne

          אולי הVS משכתב אותו בכל הפעלה מחדש שלך?
          קרה לי בעבר.

          מה פירוש "משכתב אותו", ומה הכוונה קובץ פיזי? יש קובץ וירטואלי??
          אשמח אם תבהיר את הדברים לבורים שכמוני :smile:
          תודה רבה!
          @דוד ל.ט.

          תסיר את השורה 25:
          הערות נוספות:

          1. כיון שהשתמשת עם Typed Data Set, אזז חבל לך להשתמש עם אינדקסרים סטרינגיים (donor["FirstName"]) השתמש במקום זאת במאפיינים (donor.FirstName).

          2. התנאי בשורה 8 לא יתקיים אף פעם, ולכן הוא מיותר.

          3. את התנאי בשורה 18 תוכל לפשט, ולכתוב בשורה אחת ככה:

            donor.Gender = MaleRadioButton.IsChecked == true;

          תודה רבה! אכן אחרי שהסרתי את השורה 25 הוא מעדכן.
          לגבי האינדקסרים, בהתחלה יצרתי newrow מהטבלה, ואז לא יכלתי בדרך אחרת, אח"כ ראיתי שאפשר ליצור newPersonRow (כלומר שורה מהטבלה שלי) ואז הוא אכן מציג לי את המאפיינים. אשמח ליתר פירוט על ההבדל ביניהם.

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

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

            ClickOne לא התכוון וירטואלי כמשמעו, אלא מצב בו אתה בוחר לשים את המסד-כקובץ בתוך הפרוייקט, הוא הוא מקבל הגדרה Copy Alaws לתיקיית הBin. מה שקורה שכל הרצה במסגרת הVS מוחקת את הקודם וממילא השינויים עימו.

            הNewRow זה מתודה בDataTable. אם תשים לב תראה שאתה לא משתמש בDataTable כי אם בטיפוס שיורש ממנו.
            בDataTable אין מאפיינים לכל עמודה, כי הוא מעוצב לעבודה עם כל טבלה שהיא מכל מסד שהוא. המתודה NewRow מחזירה DataRow חדש, שזה אובייקט שמכיל מערך ערכים, שהפניה אליהם נעשית ע"י אינדקסר מיקום או שם עמודה (הוא מכיר את השמות בזמן ריצה ע"י האבא שלו: הDataTable).
            משא"כ הטיפוס שהנך משתמש עימו נקרא Typed Data Table כלמור כזה DataTable שכבר יועד ועוצב בזמן עיצוב לטבלה ספציפית, כאשר לכל שדה יש מאפיין מתאים וכו'. אז בעוד המתודה NewRow היא שארית מDataTable הגנרי וחסר הטיפוסיות, אז ישנה מתודה חדשה בשם NewXxxRow שמחזירה טיפוס יורש מDataRow בו יש מאפיין פר עמודה.

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

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

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

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

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

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

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