תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    עזרה בC#

    תכנות
    5
    10
    236
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • M
      mekev נערך לאחרונה על ידי

      יש לי טבלה דינאמית (Datagridview) שמקבלת נתונים לפי שאילתה מSQL
      ואני מעוניין לקבל לתיבת טקסט (textbox) מידע שלא מופיע בתוצאת השאילתה
      אלא לקבל מידע מהSQL לפי בחירת התא/שורה בטבלה

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

      מישהו יכול לעזור בתחביר?

      רחמים clickone 3 תגובות תגובה אחרונה תגובה ציטוט 0
      • רחמים
        רחמים @mekev נערך לאחרונה על ידי

        @mekev תצרף לפה את קוד של מה שכבר עשית

        יעקובוב פיתוח תוכנה ערוץ היוטיוב | אתר

        צפו יוונים נקבצו עלי

        תגובה 1 תגובה אחרונה תגובה ציטוט 1
        • clickone
          clickone @mekev נערך לאחרונה על ידי

          @mekev מדובר על ווינפורם / WPF או ווב?

          הדרך הקלאסית היא, להאזין לאירוע בחירת שורה, ואז לפנות שוב לDB לפי המזהה ולקבל את הערך ואז להציג אותו.

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

          (עקרונית אפשר לעשות את זה גם בווב, אם זה לא נתון שחייב להיות מוחבא, אלא רוצים רק "לא להציג אותו" בטבלה.)

          אם תכתוב את הפלטפורמה, יהיה קל יותר לתת דוגמא ממשית

          בהצלחה

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

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

          תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • clickone
            clickone @mekev נערך לאחרונה על ידי

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

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

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

            M תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • M
              mekev @clickone נערך לאחרונה על ידי

              @clickone
              מדובר על ווינפורם

              העדיפות כמובן על לקבל את הערך של ה'מזהה' בבחירת שורה - ולפנות לSQL לקבל את המידע הנוסף

              הקוד של השאילתה:
              SqlConnection conn = new SqlConnection("שם שרת");
              SqlCommand cmd = new SqlCommand("SQL שאילתת", conn);
              conn.Open();
              DataTable dt = new DataTable();
              using (SqlDataAdapter Sda = new SqlDataAdapter(cmd))
              {
              Sda.Fill(dt);
              conn.Close();
              }
              dataGridView.DataSource = dt;

              הקוד הקיים לתיבת טקסט לקבלת מידע מהתוצאה בטבלה:
              textBox.Text = (string)dataGridView.CurrentRow.Cells["שם מוצר"].Value;

              תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • Aharon 0
                Aharon 0 נערך לאחרונה על ידי

                יש אירוע של בחירת שורה
                Winform כבר לא נתמך ע"י Microsoft. לעומת wpf שעדיין נתמך. (יש תמיכה ב net5), לגבי שאילתא מ db כדאי להשתמש entity framework יאפשר לך גמישות עם db.

                dovid תגובה 1 תגובה אחרונה תגובה ציטוט 1
                • dovid
                  dovid ניהול @Aharon 0 נערך לאחרונה על ידי dovid

                  WinForms נכון לעכשיו נתמכת.

                  @mekev תוסיף כזאת שורת קוד:

                  dataGridView.SelectionChanged += (se, ev) =>
                  {
                  	var id = dataGridView.SelectedRows[0].Cells["מזהה"].Value;
                  	var cmd = new SqlCommand("SELECT * FROM X WHERE מזהה = @id", conn);
                  	cmd.Parameters.AddWithValue("id", id);
                  	var reader = cmd.ExecuteReader();
                  	if(reader.Read())
                  	{
                  		textBox.Text = reader["שם עמודה"].ToString() + " " + reader["שם עמודה2"].ToString();
                  	}
                  };
                  

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

                  בהצלחה.

                  עריכה: כעת אני רואה שקראת לclose של הקונקשין אז צריך לפתוח אותה בקוד, או ליצור קונקשיין כל פעם.

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

                  dovid תגובה 1 תגובה אחרונה תגובה ציטוט 1
                  • dovid
                    dovid ניהול @dovid נערך לאחרונה על ידי

                    קוד מתוקן לקוננקשיין חדש:

                    dataGridView.SelectionChanged += (se, ev) =>
                    {
                    	var id = dataGridView.SelectedRows[0].Cells["מזהה"].Value;
                    	using (var newCon = new SqlConnection(conn.ConnectionString))
                    	using (var cmd = new SqlCommand("SELECT * FROM X WHERE מזהה = @id", conn))
                    	{
                    		newCon.Open();
                    		
                    		cmd.Parameters.AddWithValue("id", id);
                    		var reader = cmd.ExecuteReader();
                    
                    		if (reader.Read())
                    			textBox.Text = reader["שם עמודה"].ToString() + " " + reader["שם עמודה2"].ToString();
                    
                    		newCon.Close();
                    	}
                    };
                    

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

                    תגובה 1 תגובה אחרונה תגובה ציטוט 1
                    • M
                      mekev נערך לאחרונה על ידי

                      תודה לכל העוזרים!

                      אשמח להחכים:
                      בהמשך לדברי @mekev
                      איך אני מגדיר בשאילתה דינמית שמזינה dataGridView
                      שיהיה עמודה מוסתרת/בלתי מוצגת

                      dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • dovid
                        dovid ניהול @mekev נערך לאחרונה על ידי dovid

                        @mekev
                        אני מבין מדבריך שאתה מעוניין שהעמודה כן תהיה בdataGridView (ויוכלו לגשת דרך Cell["hidden col"]) רק שלא תוצג.
                        במידה והבנתי אותך, התשובה היא שאין לזה קשר להגדרה בשאילה, אלא שאחרי המילוי כלומר שורה אחרי השורה dataGridView.DataSource = dt; להסתיר את העמודה:

                        dataGridView.Columns["sodi"].Visible = false;
                        

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

                        תגובה 1 תגובה אחרונה תגובה ציטוט 1
                        • הועבר מ תכנות ע"י  dovid dovid 
                        • 1 / 1
                        • פוסט ראשון
                          פוסט אחרון
                        בא תתחבר לדף היומי!