נתונים ב#C
-
אז ב"ה דוד לימד אותי קצת C#, תודה רבה!
(אגב, את הפרוייקט שרציתי לעשות, הצלחתי, שכוייעח!)עכשיו, ברשותכם כמה שאלות עמרציות:
איך הדרך המקובלת לטפל בנתונים:
מערכים, כמו בכל ההדרכות הבסיסיות (עם מחלקה לנתון בודד, ועוד מחלקה למערך כללי של הנתונים), או מסדי נתונים, או משהו אחר.
ואם מערכים, אז מערכים בגרסה הבסיסית שלהם, או משהו משודרג כמו ליסט (שלא הצלחתי להבין מה זה).
ואיך בעצם זה עובד, הרי כל הנתונים של אגרון לא יכולים לרדת לזיכרון המחשב.או שאמשיך לבנות מסדי נתונים באקסס (ששם לעשות קיבוץ על שדה לא מצריך לולאות וכו'),
או שרק הנתונים יאוחסנו באקסס, והטפסים יהיו בסי שארפ.
אשמח למישהו שיבאר לי קצת.
תודהפורסם במקור בפורום CODE613 ב05/04/2017 18:22 (+03:00)
-
שמך יאה לך...
מערך זה שמירת נתונים נדיפה - התוכנה תיסגר, הנתונים יתאיידו.
כל דבר שרוצים לשמור, חייב להיכתב בדיסק הקשיח - זיכרון לא נדיף.
שמירה בדיסק יכולה להתבצע על ידך בקבצים בפורמטים שונים - אבל זה מתחיל להיות לא יעיל כשמדובר בנתונים שמאפיינים מסדי נתונים - שדות לכל אלמנט, ריבוי אלמנטים, קשרים וכו'.
לכן הלכו ויצרו מסדי נתונים שזה תוכנה חיצונית (ובמסדים ניידים כמו אקסס - ספריה חיצונית) שהיא דואגת לכל ההגדרה, השמירה, והשליפה של הנתונים.
התקשורת עם מסדי נתונים היא על פי רוב עם טקסט בשפת T-SQL שלכל מסד יש וריאציה שלה. שולחים למסד הנתונים הודעה שמכילה "select * from table" והמסד מגיב בהתאם.בC# משתמשים עם ספריית דוטנט לנתונים. ספריה עשירה אך מסובכת קצת למתחילים (פעם כתבתי על זה פה), והכי גרוע: כלום לא קורה מאליו. תוכנת אקסס עם הטפסים שלה קלה בקטע הזה בהרבה - אם איגדת שורה לפקד שינוי בפקד משתקף בשורה. ניווט מהיר מאוד כי למעשה אתה בקוד לא טוען שום שורה רק מאפשר למשתמש להפעיל את תוכנת אקסס עם ההתאמות הנדרשות.
ואילו בC#, עליך לעשות כל דבר. שמירה? אז לכתוב פקודת UPDATE מעצבנת, וכו'.
אז נשאלת השאלה, מה הטפשות לכתוב בC# במקום באקסס? תשובה: אם הצורך שלך הוא טפסים מאוגדים לנתונים וכל התכנות זה אי אלו התאמות קטנות - אקסס זה הדבר המתאים. (לרוב האנשים).
אבל אם אתה עושה תוכנה שמעבדת קלט משתמש ועושה הרבה החלטות ואוטומציות אלא שתכלית העניינים זה שמירה בDB (וק"ו כשזה לא התכלית אלא משהו צידי) אז C# עם כל מורכבותה היא המקום המתאים.יש כיום טכניקות שמקילות מאוד על העבודה ומאפשרות לעבוד מול DB תוך חמש דקות. המפורסמת שבהם זה EntityFramework, אבל היא לא מתאימה לאקסס אלא רק למסדים הגדולים.
בשביל אקסס יש טכניקה ישנה יותר ששמה TypedDataSet שהיא נוצרת ע"י אשף של הVS שסוקר את המסד בזמן עיצוב וכותב עבורו את רוב הקוד השחור ומאפשר למתכנת לעבוד בצורה קצת יותר אלגנטית מלהתחיל לשרשר פקודות SQL בטקסט.
אם אתה רוצה להתחיל עם TypedDataSet, הקש בVS את הצירוף shift+alt+d. ייפתח בצד פאנל בשם DataSources. תלחץ על לחצן ההוספה (סימן +) וייפתח האשף.
במהלך האשף בחר כדהלן:- DataBase
- DataSet
- לחיצה על new connection ובחירה בתיבה הנפתחת במיקום הקובץ (וודא שבתיבה DataSource מופיע Access), ואישור.
תישאל כעת בהודעה האם להעתיק את המסד לתיקיית התוכנה ושלשנות בהתאם את מסלול הקובץ. לחץ No. - להשאיר כמו שזה ולהתקדם
- בחר את הטבלאות הרלוונטיות לך - תוכל לבחור הכל (לא עולה כסף)
זהו.
כעת יהיו לך בפרוייקט כמה קבצים מאוגדים תחת הDataSet.
כדי להרגיש שקרה משהו תוכל לגרור מהחלונית הלעיל טבלה ולהדביק אותה בחלון הWPF ולצפות בתוצאות בF5.תראה מצד אחד זה הזוי לקפוץ לאיך שומרים לפני שיודעים את בסיסי התכנות, מצד שני קפיצה למים היא סגנון לימוד שמצליח הרבה אז אני לא מוחה בידך.
נ.ב. תחפש כאן בפורום (עפ חיפוש גוגל) ותמצא הרבה על אקסס\נתונים עם C#.
פורסם במקור בפורום CODE613 ב05/04/2017 21:00 (+03:00)
-
@מצפה לגדול
או שאמשיך לבנות מסדי נתונים באקסס (ששם לעשות קיבוץ על שדה לא מצריך לולאות וכו'),
בגדול התשובה היא אקסס. המומחיות של הDB זה שליפה טובה וחכמה.
אבל בשולי הדברים יש לדון בשאלתך מה החיסרון שאתה רואה בלולאות...
אם רחמיך על המחשב - אזי תדע שגם באקסס יש לולאו (אם כי בהרבה מקרים יעילים יותר)
אם רחמיך על העצבים לפרש בכל דבר איך, במקום להצהיר מה, יש לזה פתרונות גם בC#.עלה והצלח.
פורסם במקור בפורום CODE613 ב05/04/2017 21:08 (+03:00)
-
תודה על הפירוט.
א. היוצא מדבריך שאם אני רוצה לנתח מידע, זה כאן (די מובן אם זה מידע שרק התוצאה חשובה).
אז: 1. לאיזה סוג מערך לייבא את הנתונים. אם מערך רגיל, אני לא יודע בשעת ההקצאה כמה יהיה גודלו.
אולי מסד נתונים בזיכרון?
2. איך אני עושה את זה למעשה: נניח אני מקבל למשתנה קובץ טקסט מחולק לשורות, ועל ערך אחד אני רוצה להפעיל שאילתת קיבוץ, ואח"כ להציג, כל ערך כמה פעמים מופיע. איך אפשר לעשות את זה הכי חוקי (עם לולאות או בלעדיהן.)ב. איפה יש הדרכה מאפס איך מחברים מסד נתונים של אקסס, ואיך עובדים איתו.
@דוד ל.ט.
שמך יאה לך...
תודה תודה...
@דוד ל.ט.תראה מצד אחד זה הזוי לקפוץ לאיך שומרים לפני שיודעים את [size=150:1y9dpk5y]בסיסי התכנות[/size:1y9dpk5y], מצד שני קפיצה למים היא סגנון לימוד שמצליח הרבה אז אני לא מוחה בידך.
מה זה כולל לשיטתך? (ז"א מה אני צריך לדעת מעבר ל-לולאות,משתנים, טיפוסים בסיסיים, וכו')
(ואגב, בעניין קפיצה למים, הטריגר שלי ללמוד דברים, זה הצורך בהם, אין לי כח לשבת וללמוד דברים תאורטיים שאין לי צורך בהם כרגע. נקווה שיצליח...)
בתקווה שישאר לך כח לשאלות מתחילים...
מצפה.פורסם במקור בפורום CODE613 ב06/04/2017 00:47 (+03:00)
-
הזכרת מערך וליסט.
זה דוגמאות למה אתה צריך ללמוד.
אל תתבייש לשאול כל דבר, וגם לחפש באינטרנט (מקוה שיש לך נטפרי).
אני מאוד ממליץ על קניית תוכנה בשם linqPad. משהו כמו מאה ש"ח, והרבה הרבה תועלת. יש שמה דוגמאות קוד שלקוחים מספר של מחבר התוכנה על C#, אתה עובר לאט לאט על הדוגמאות זה שיא הפרקטיקה לימודית.בקשר להדרכה מאפס אני חושב שאולי בהודעתי יש משהו מעין זה
פורסם במקור בפורום CODE613 ב06/04/2017 02:03 (+03:00)