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

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

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

כיצד אני קורא לפונקציה בעת שינוי בפקד dataGridView?

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

    אני רוצה שכל שינוי בטבלה יישמר באופן מיידי בדאטהבייס, עשיתי כך, אבל הפונקציה "dataGridView1_CellValueChanged" כלל לא מופעלת, (הוספתי הודעה קופצת, ולא קורה כלום..)

            private void SaveChanges()
            {
                try
                {
                    using (OleDbConnection connection = new OleDbConnection(connectionString))
                    {
                        connection.Open();
    
                        using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter())
                        {
                            using (OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter))
                            {
                                dataAdapter.SelectCommand = new OleDbCommand("SELECT * FROM t1", connection);
                                dataAdapter.UpdateCommand = commandBuilder.GetUpdateCommand();
    
                                dataAdapter.Update(dataTable);
    
                                MessageBox.Show("Changes saved successfully.");
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("An error occurred while saving changes: " + ex.Message);
                }
            }
    
            private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                MessageBox.Show("hi!");
                dataGridView1.EndEdit();
                SaveChanges();
            }
    
            private void dataGridView1_RowValidated(object sender, DataGridViewCellEventArgs e)
            {
                MessageBox.Show("hi!");
                dataGridView1.EndEdit();
                SaveChanges();
            }
    
    yossizY תגובה 1 תגובה אחרונה
    1
    • yossizY מנותק
      yossizY מנותק
      yossiz
      השיב למוטי מן ב נערך לאחרונה על ידי
      #2

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

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      מוטי מןמ 2 תגובות תגובה אחרונה
      2
      • מוטי מןמ מנותק
        מוטי מןמ מנותק
        מוטי מן
        השיב לyossiz ב נערך לאחרונה על ידי
        #3

        @yossiz כתב בכיצד אני קורא לפונקציה בעת שינוי בפקד dataGridView?:

        אתה לא מראה לנו בקוד שהפונקציה באמת מחוברת לאירוע CellValueChanged

        כיצד מחברים את זה?

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

                private void txtFilterName_TextChanged(object sender, EventArgs e)
                {
                    LoadData();
                }
        

        זה גם לא עשה כלום...

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

          אני חושב שאני מתחיל להבין...

          יכול להיות שזה צריך להיות בקובץ דיזיינר? א"כ הנה זה

                      // dataGridView1
                      // 
                      this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
                      this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                      this.dataGridView1.Location = new System.Drawing.Point(12, 125);
                      this.dataGridView1.Name = "dataGridView1";
                      this.dataGridView1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
                      this.dataGridView1.Size = new System.Drawing.Size(1257, 576);
                      this.dataGridView1.TabIndex = 0;
                      // 
                      // txtFilterName
                      // 
                      this.txtFilterName.Location = new System.Drawing.Point(998, 56);
                      this.txtFilterName.Name = "txtFilterName";
                      this.txtFilterName.Size = new System.Drawing.Size(112, 20);
                      this.txtFilterName.TabIndex = 1;
          

          אני חושד בזה בגלל השורה הזו בדיזיינר של הלחצן שהוספתי..

          this.button1.Click += new System.EventHandler(this.button1_Click);
          
          תגובה 1 תגובה אחרונה
          0
          • מוטי מןמ מנותק
            מוטי מןמ מנותק
            מוטי מן
            השיב לyossiz ב נערך לאחרונה על ידי מוטי מן
            #5

            @yossiz הבנתי!!!

            הוספתי את זה ועובד

            this.txtFilterName.TextChanged += txtFilterName_TextChanged;
            

            רק כמה שאלות, במחילה..

            א. מה אומר הthis
            ב. מה זה ה=+

            yossizY תגובה 1 תגובה אחרונה
            1
            • yossizY מנותק
              yossizY מנותק
              yossiz
              השיב למוטי מן ב נערך לאחרונה על ידי
              #6

              @מוטי-מן כתב בכיצד אני קורא לפונקציה בעת שינוי בפקד dataGridView?:

              הוספתי את זה ועובד

              אני שמח שהבעיה נפתרה אבל לא הצלחתי להבין איך הקוד שהבאת קשור לבעיה שלך

              א. מה אומר הthis

              זו מילה שתמיד מצביע על האובייקט הנוכחי (מופע של הקלאס שבו מוגדר הפונקציה שבו נמצא המילה this)

              ב. מה זה ה=+

              זו הדרך שבה נרשמים להאזין ל-event ב-#C
              האובייקט txtFilterName מפרסם שהוא פולט "ארוע" בשם TextChanged ואתה נרשם לקבל את האירוע על ידי הוספת פונקציה עם אופרטור +=

              מעבר לזה קשה לי להסביר, תעיין במדריכי #C...

              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

              מוטי מןמ תגובה 1 תגובה אחרונה
              3
              • מוטי מןמ מנותק
                מוטי מןמ מנותק
                מוטי מן
                השיב לyossiz ב נערך לאחרונה על ידי
                #7

                @yossiz כתב בכיצד אני קורא לפונקציה בעת שינוי בפקד dataGridView?:

                אני שמח שהבעיה נפתרה אבל לא הצלחתי להבין איך הקוד שהבאת קשור לבעיה שלך

                מה הכוונה?

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

                  @מוטי-מן קובץ הדיזיינר הוא קובץ שנוצר אוטומטי בגלל פעולות משתמש במצב עיצוב של הטופס.
                  הדרך להוספת אירוע אינה שינוי של הקובץ ההוא, כי זה יידרס מיידית בשינוי הבא של הטופס.
                  הדרך היא לבחור את פקד הDGV במצב עיצוב, מעבר לחלונית המאפייינים, שמה בחירה ברשימת האירועים (יש סימן של ברק למעלה כמדומני), ברשימה הזו למצוא את האירוע וללחוץ עליו דבל קליק או להזין ידנית שם מתודה רצוי.

                  מאחורי הקלעים כל דבר בחלונית העיצוב הופך לקוד, שרץ ע"י קריאה לInitializeComponent שיש בבנאי של המחלקה Form (אני כותב מזיכרון מקוה שדייקתי בפרטים).

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

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

                  תגובה 1 תגובה אחרונה
                  3
                  • yossizY מנותק
                    yossizY מנותק
                    yossiz
                    השיב למוטי מן ב נערך לאחרונה על ידי
                    #9

                    @מוטי-מן כתב בכיצד אני קורא לפונקציה בעת שינוי בפקד dataGridView?:

                    @yossiz כתב בכיצד אני קורא לפונקציה בעת שינוי בפקד dataGridView?:

                    אני שמח שהבעיה נפתרה אבל לא הצלחתי להבין איך הקוד שהבאת קשור לבעיה שלך

                    מה הכוונה?

                    אירוע זה: txtFilterName.TextChanged לא נראה לי קשור כלל לבעיה המקורית שלך

                    אני רוצה שכל שינוי בטבלה יישמר באופן מיידי בדאטהבייס

                    זה אמור להיות קשור לאירוע CellValueChanged של ה-DataGridView

                    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

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

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

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