חיבור נתונים מאקסס לWPF
-
אני מנסה לחבר קובץ וזה מה שהוא מודיע לי.
מה הוא רוצה?פורסם במקור בפורום CODE613 ב28/05/2017 17:11 (+03:00)
-
בקשר לשגיאה - ההודעה הראשונה - עליך להראות או לכתוב מה שעשית.
ההודעה השניה שואלת אותך אם אתה רוצה להעתיק את המסד לתיקיית הפרוייקט ולשנות את נתיב החיבור בהתאם. יש לזה תופעות לוואי קשות אז אני ממליץ שלא.פורסם במקור בפורום CODE613 ב28/05/2017 17:19 (+03:00)
-
אתה משתמש בTyped DataSet, שם יש שתי שלבים: שינוי הטבלה בDataSet, עדכון השינויים לDatabase ע"י הAdapter.
אינני יודע מה הייתה כוונתך איך אני עורך, האם כוונתך לשאול איך אני מאפש למשתמש בתצוגה לשנות את הנתוני או שאת השלב הזה עברת והשאלה היא איך לשמור את השינויים בDb.
אז ביחס לשאלה איך לשנות בתצוגה זה מאוד מאוד רחב. אם השתמש בפקד DataGrid אז זה אמור להיות כבר הכל מובנה: לחיצה כפולה לעריכה, שורה אחרונה להוספת שורה חדשה, וDelete למחיקת שורה.
זה לא עובד?אם אתה משתמש בפקדים אחרים אז תחשוף קצת יותר מה (טיפ: אפשר להדביק פה קוד xaml וכדומה).
בקשר לשמירה, בד"כ בשימוש בכלי הציור של ויזואל סטודיו בסביבת WPF בשביל לאגד לDataSet, יוצר בקוד אוטומטית משתנה מסוג DataSet.
בשביל לשמור אתה צריך את המשתנה הזה שנוצר עבור ההצגה, ולעדכן יחד עם אדפטר את הDB.
זה אמור להיראות משהו כזה:var adapter = new XyzDataSetDataAdapters.XyzDataAdapter(); adapter.Update(ds_instance);
אם תדביק פה את הקוד C# שטוען את הנתונים אוכל להיות יותר ספציפי.
פורסם במקור בפורום CODE613 ב29/05/2017 08:52 (+03:00)
-
דבר ראשון תודה שיש לך עצבים לענות לי....
אפצל את השאלה.
עשיתי שני טפסים, אחד שמשתמש עם דטה גריד, ושם, זה כמו שכתבת בהתחלה לחיצה כפולה שורה אחרונה ודליט, אבל מה שאני עושה לא נשמר בפועל, אם אני פותח שוב, לא מופיע שום שינויים.ובטופס השני שבו אני רוצה להציג כמו בטופס בודד באקסס, גם אותו דבר.
__
עריכה:
הוספתי את השורות ששמת בסוף, בלחצן מיוחד, כי לא ידעתי איפה להכניס אותו...
וזה שומר את השינויים.זה הקוד שטוען הנתונים בשניהם:
emailForI.Database1DataSet database1DataSet = ((emailForI.Database1DataSet)(this.FindResource("database1DataSet"))); // Load data into the table tikpConetions. You can modify this code as needed. emailForI.Database1DataSetTableAdapters.tblNamesTableAdapter database1DataSettblNamesTableAdapter = new emailForI.Database1DataSetTableAdapters.tblNamesTableAdapter(); database1DataSettblNamesTableAdapter.Fill(database1DataSet.tblNames); System.Windows.Data.CollectionViewSource tblNamesViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("tblNamesViewSource"))); tblNamesViewSource.View.MoveCurrentToFirst();
פורסם במקור בפורום CODE613 ב29/05/2017 17:25 (+03:00)
-
הקוד לשמירה הוא כזה:
var ds = ((emailForI.Database1DataSet)(this.FindResource("database1DataSet"))); var adapter = new emailForI.Database1DataSetTableAdapters.tblNamesTableAdapter(); adapter.Update(ds);
אתה יכול להפעיל את זה באירוע כפתור שמירה, או להצמיד את זה לכל שינוי מיידית ע"י האזנה לאירוע הוספה שינוי ומחיקה של הDataSet.
פורסם במקור בפורום CODE613 ב29/05/2017 17:35 (+03:00)
-
@דוד ל.ט.
הקוד לשמירה הוא כזה:
var ds = ((emailForI.Database1DataSet)(this.FindResource("database1DataSet"))); var adapter = new emailForI.Database1DataSetTableAdapters.tblNamesTableAdapter(); adapter.Update(ds);
אתה יכול להפעיל את זה באירוע כפתור שמירה, או להצמיד את זה לכל שינוי מיידית ע"י האזנה לאירוע הוספה שינוי ומחיקה של הDataSet.
איזה מהירות,
ערכתי את ההודעה, וכבר ענית..פורסם במקור בפורום CODE613 ב29/05/2017 17:40 (+03:00)