עבור לתוכן

הוספת עמודה לטבלה בבסיס נתונים בזמן ריצה ב c#

Featured Replies

פורסם

שלום לכולם

אני די חדש בתחום של database-ים, אף פעם לא התעסקתי עם הנושא ב c#, ככה שאולי זו פעולה פשוטה אבל אני לא בטוח איך לעשות אותה.

יש לי database של Access בשם workersdb.mdb שאותו הוספתי לפרוייקט. נוצר לי קובץ xsd שמגדיר את ה DataSet , עם הטבלאות וה adapter-ים.

ב database יש טבלה שמכילה נתונים של עובדים (יש בו עוד כמה טבלאות) שמוצגים בטופס ע"י פקדים (גררתי שדות מחלונית ה Data Sources).

כרגע נוצרו לי בטופס (חוץ מהפקדים) האובייקטים workersdbDataSet, workersBindingSource, workersTableAdapter, workersBindingNavigator והפקדים השונים.

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

תודה רבה :)

פורסם

אתה יכול להשתמש בALTER TABLE וSQL.

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

בטבלה שניה תשמור ID של העמודה החדשה, הID של המשתמש שלך והנתונים שאתה רוצה לשמור.

פורסם
  • מחבר

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

פורסם

ע"י שאילתת SQL פשוטה אתה יכול לבדוק אילו ערכים נוספים נתת לכל עובד.

select * from workerInfo where worker_id = 5

יתן לך את המאפיינים שהגדרת לעובד 5.

פורסם
  • מחבר

התכוונתי לתוך GridView. זאת אמרת איך אני דואג שה GridView יציג את הנתונים (שורות) של העובד הנוכחי (שמוצג בשאר הפקדים) בלבד?

עריכה: אני חושב שהסתדרתי (אני פשוט ממלא את ה adapter בעזרת שאילתה שמקבלת ת.ז של עובד כפרמטר).

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים