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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
dovidD

dovid

@dovid
ניהול
אודות
פוסטים
10.2k
נושאים
184
שיתופים
0
קבוצות
2
עוקבים
32
עוקב אחרי
0

פוסטים

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

  • מפת דרכים: WPF – תוכנה לניהול בית כנסת
    dovidD dovid

    אני מאוד בעד ללמוד Nodejs אבל חייבים לעשות סדר לא ללמוד הכל ביחד...
    ואגב magicode בקשר לחומרה+תוכנה היקרים בשביל מיקרוסופט אני מסכים לגמרי, אבל מגיע להם. בשביל זה הם עושים דברים כ"כ יפים ויעילים בפלטפורמה שלהם...

    פורסם במקור בפורום CODE613 ב21/01/2014 11:11 (+02:00)

    ארכיון code613m

  • WPF datatemplate.ChildNames
    dovidD dovid

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

    פורסם במקור בפורום CODE613 ב21/01/2014 18:57 (+02:00)

    ארכיון code613m

  • WPF datatemplate.ChildNames
    dovidD dovid

    הקטע עם הגנריות כאן זה לא נראה לי תכנות נכון. כלומר ניתן להגיע לכל תוצאה מבוקשת בלי השמניות הללו.
    והפוקנציה שהבאת קשורה אכן לדברי, אבל לא בדיוק.
    היא מחזירה סוג מבוקש מתוך עץ אלמנטים, בעוד אתה רוצה הכל.
    חוץ מזה היא מקבלת כפרמטר DependencyObject כשלך ביד יש רק DataTemplate לכן אמרתי שתיצור אובייקט ע"י המתודה LoadContent.

    פורסם במקור בפורום CODE613 ב21/01/2014 14:31 (+02:00)

    ארכיון code613m

  • WPF datatemplate.ChildNames
    dovidD dovid

    @רחמים

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

    הבקשה לא הכי הגיונית, כי אתה יכול להסתכל בXAML.
    אם מדובר בטמפלט לא שלך, בVS שלי הוא נותן הכל כשעושים Edit Style. אבל זה אכן לא קיים ב2010.
    בכל אופן, נדמה לי שתוכל לעבור על עץ האלמנטים ע"י הפוקנציה "LoadContent". היא מחזירה לך אלמנט, אתה צריך לבדוק מהו, ואם יש לו בנים, וכן הלאה. לא הכי נחמד.

    פורסם במקור בפורום CODE613 ב21/01/2014 14:14 (+02:00)

    ארכיון code613m

  • WPF datatemplate.ChildNames
    dovidD dovid

    אתה לא רואה אותם כי הם מוגדרים כFriend או יותר מדוייק הם אינם Public.
    תוכל להיווכח בכך ע"י הObject Browser אם תגדיר שיראה גם מאפיינים לא ציבוריים.

    פורסם במקור בפורום CODE613 ב21/01/2014 12:38 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    שמואל ורחמים ClickOne, הקוד שלכם לא טוב.
    הDefault Value יהיה הזמן בו הרצתם את הקוד הזה גם לשורות שנוצרו שלוש שעות אחרי כן.

    ובכלל שמואל אתה שאלת שתי שאלות ממש לא קשורות!
    א. איך להתגבר על השגיאה של NullValue
    ב. איך להשים בעמודת תאריך את תאריך יצירת השורה, ללא כתיבה מפורשת בכל פעם שנוצרת שורה.

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

    @רחמים

    עד כעת נוצר לי ה DataSet ע''י אשף שנפתח לאחר שהוספתי לפרוייקט את המסד נתונים, ובאמת יצר את כל המחלקות הרבות שלו, וזה מה שאתה קורה TypedDataSet ?

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

    אז איך אני יוצר DataSet רגיל בלא כל הבלגאן ?

    Dim dataSet = New DataSet
    

    פשוט, אהה?
    וככה מוסיפים טבלה:

    dataSet.Tables.Add("MYTABLE")
    

    ובדרך כלל לא עושים זאת, כי האדפטר שממלא את הטבלה גם יוצר אותה אם היא לא נמצאת:

    Dim da As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM MYTABLE", New OleDbConnection(ConnStr))
    
    da.SelectCommand.Connection.Open()
    
    'ע"י פקודה זו נוצרים בדטה סט כל הטבלאות + ממולאים בנתונים
    da.Fill(dataSet)
    
    da.SelectCommand.Connection.Close()
    

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

    פורסם במקור בפורום CODE613 ב22/01/2014 11:35 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    @רחמים

    לגבי הINotifyPropertyChange אני משתמש בארוע שינוי שורה ומחיקת שורה בתוך ה DataTable

    זה מגושם מאוד אם אתה צריך לעדכן בינדינגים ככה.

    @רחמים

    אפשר קישור לאשכול של שמואל וארכיטקט

    לשירותך, http://tchumim.com/post/558
    תרווה נחת.

    @רחמים

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

    לא צריך את המחלקה הארוכה שלך, די בארבעת שורות הקוד דלעיל.

    @רחמים

    וזה חוסך את כל הקלאסים הארוכים של הדטה סט הרגיל רק מה זה לא ויזואלי אלא הכל בקוד.

    🙂

    פורסם במקור בפורום CODE613 ב22/01/2014 13:34 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    @רחמים

    @דוד ל.ט.
    לא צריך את המחלקה הארוכה שלך, די בארבעת שורות הקוד דלעיל.

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

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

    פורסם במקור בפורום CODE613 ב22/01/2014 14:40 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    תהיה בריא...
    אתה צודק, כמו שאתה משתמש זה מעולה, ובדרך זו גם בכלל לא צריכים את הTypedDataSet (כלומר DataSet רגיל מספיק).
    כל קיומו נועד ליצור שכבת אובייקטים קשוחים ולא אוספי אובייקט כמו הDataRow הרגיל.
    בשביל מה טיפוסים קשוחים?
    א. למנוע שגיאות. שלא תכניס טקסט בשדה מספרי.
    ב. להקל על הקריאות בקוד
    ג. להתמצאות בשדות ע"י ההשלמה אוטומטית

    פורסם במקור בפורום CODE613 ב21/01/2014 22:28 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    נכון, אני שוטה לגמרי. בItemArray לא תהיה לך שגיאה אף פעם.
    הבעיה זה בגישה למאפיינים.
    אם תכתוב: Dim a = Row.FieldName בהנחה שFieldName הוא ריק, תקפוץ לך שגיאה.
    ואל תטרח לומר לי אם זה עבד לך...

    פורסם במקור בפורום CODE613 ב21/01/2014 22:09 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    @רחמים

    מחקתי כמו שאמרת ולא קפצה שום שגיאה.

    נכון, כי זה עדיין DataRow... רק כעת שמתי לב שלמעלה כתבת As DataTable... במקום DataTable תכתוב את שם הTypedDataTable שלך.
    זה אמור להיראות ככה: XxxxDataSet.XxxxDataTable. במקום הX יהיה לך את שם הDS והטבלה בהתאמה.

    פורסם במקור בפורום CODE613 ב21/01/2014 21:58 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    @רחמים

    האם הקוד הבא אמור לקבל שגיאה?

    לא, הקוד לא אמור לזרוק שגיאה.
    אתה ממיר כל שורה לDataRow רגיל.
    אם תמחק את המילים As DataRow והטיפוס יישאר TypedDataRow הוא יזרוק שגיאה.

    פורסם במקור בפורום CODE613 ב21/01/2014 21:02 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    @רחמים

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

    יש מקומות בקוד שאני עובר בלולאת For Each על כל השורות ולא מקבל שום שגיאה, אלא אם שדה מסויים ריק הוא מחזיר DBNULL.

    אתה טועה או בנתונים שסיפקת, או בעובדה זו עצמה.

    פורסם במקור בפורום CODE613 ב21/01/2014 14:03 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    עוד הערה:
    כאלה שמשתמשים הרבה עם הTypedDataSet, יכולים לשקול לרשת את הDS+DT+DR. ולקסטם אותם.
    זה ממש נוח, ולא נמחק בייבוא מחדש וכדומה.
    כל דבר שלא רוצים לקסטם, לא צריך לכתוב לו קוד.

    פורסם במקור בפורום CODE613 ב21/01/2014 11:48 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    @ClickOne

    אפשר שהדאטאסט יסכים לקבל NULL.
    לך למאפייני העמודה, ותחליף במאפיין NullValue את הערך (Throw exception) לערך (Nothing).
    אם זה מעצבן אותך לעשות את זה על כל עמודה אתה יכול לבחור את כל העמודות (עם שיפט) - ואז לשנות את הכל בבת אחת.

    לערכים לא סטרינגיים (כמו תאריך) א"א לקבוע Empty או Nothing. אז צריך לשים ערך כל שהוא. וזה א"א עם Shift...

    פורסם במקור בפורום CODE613 ב21/01/2014 11:38 (+02:00)

    ארכיון code613m

  • DataSet NullValue
    dovidD dovid

    @רחמים

    אבל אצלי שאני משתמש ב MDF המאפיין הNullValue מוגדר כ Throw exception
    והמאפיין AllowDNNull מוגדר כ TRUE
    והמאפיין DefaultValue מוגדר כ DNNull
    והכל עובד מצויין ואין שגיאות שקופצות בשדות NULL
    אני משתמש ב VS 2010 אם זה משנה.

    אם אתה פונה למאפיין של DataRow שלא אוכלס אתה בהכרח מקבל שגיאה.

    @ClickOne

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

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

    dataSetInstant.TableName.TableNewRow += (s, e) => { e.Row("DateInsert") = Now; };
    

    פורסם במקור בפורום CODE613 ב21/01/2014 10:59 (+02:00)

    ארכיון code613m

  • WPF בחירת עמודות שלמות בדטה-גריד
    dovidD dovid

    תראה את הXAML של הכפתור.

    פורסם במקור בפורום CODE613 ב21/01/2014 14:39 (+02:00)

    ארכיון code613m

  • WPF בחירת עמודות שלמות בדטה-גריד
    dovidD dovid

    כל הבעייה זה בגרירה (במשיכה כלשונך), בלחיצה הכל עובד טוב?

    פורסם במקור בפורום CODE613 ב21/01/2014 14:05 (+02:00)

    ארכיון code613m

  • WPF בחירת עמודות שלמות בדטה-גריד
    dovidD dovid

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

    פורסם במקור בפורום CODE613 ב21/01/2014 11:31 (+02:00)

    ארכיון code613m

  • WPF בחירת עמודות שלמות בדטה-גריד
    dovidD dovid

    אתה רוצה שלחיצה תבחר את העמודה, ואתה מוותר על העניין של המיון?
    או שאתה משתף אותנו בדילמה...

    תוכל לשלב בכותרת כפתורון לבחירת העמודה. תראה מה שהם עשו פה:
    http://wpf.codeplex.com/wikipage?title=Column Selection

    הצלחה.

    פורסם במקור בפורום CODE613 ב20/01/2014 14:49 (+02:00)

    ארכיון code613m
  • 1 / 1
  • התחברות

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

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