עבור לתוכן

לא מצליח לשמור נתונים ב LINQ. שפת C#

Featured Replies

פורסם

היי.

יש לי בעיה מציקה ומוזרה כשאני מנסה לשמור נתונים לטבלה ב LINQ .

הנתונים כנראה נשמרים כביכול באיזה שהוא באפר, אבל לא באמת נכתבים לטבלה.

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

השדה username הוא ה Primary key של הטבלה.

כשאני מסתכל על הטבלה אני לא רואה בשום שלב שהוא את הנתונים שהכנסתי. מצורף הקוד של הכנסת הנתונים. למישהו יש עצה?

תודה רבה!

      user temp = new user();
temp.Username = tbUsername.Text;
temp.Password = tbPassword.Text;
temp.IsOnline = false;
if (add == true)
db.users.InsertOnSubmit(temp);
else
db.users.DeleteOnSubmit(temp);

db.SubmitChanges();

פורסם

באיזה db אתה משתמש?

בדקת שלא נזרקת לך איזו שגיאה?

פורסם
  • מחבר

תודה על התגובה.

יצרתי Microsoft SQL Server Database File (SqlClient) ולא נזרקת לי שום שגיאה...

כמו שציינתי, הנתונים נשמרים בהצלחה כביכול באיזה שהוא באפר ופשוט לא נשמרים לאחר יציאה מהתוכנית...

פורסם

ניחוש מושכל אומר לי שכנראה האובייקטים שאתה מנסה להכניס לא מסומנים כאילו הם עברו שינוי צריך לשחק עם הobjectstatemanager ולשנות את הערך של האובייקטים לmodified/new.

פורסם
  • מחבר

לא כ"כ הבנתי מה אני אמור לעשות... :P

תוכל בבקשה לפרט יותר?

תודה רבה!

פורסם

אם זה entity framework זה משהו בסגנון הזה:


user temp = new user();
//להכניס ערכים
user.ObjectStateManager.ChangeFlags(StateFlags.NewObject)

בlinq to sql לא אמורה להיות בעיה עם זה.

רק דבר אחד שכדאי לחשוב עליו זה שאם אתה עובד עם DB מבוסס קבצים אז בכל קימפול הקובץ mdf מאופס.

פורסם
  • מחבר

משום מה אין לי את

ObjectStateManager

ב user...

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

פורסם

אין לי נסיון עם linq אבל מתאור הבעיה נשמע כאילו אתה לא סוגר את ה-transaction בסוף הפעולה ולכן הנתונים לא נשמרים ב-db.

פורסם

מה הטיפוס של db?

לא חסר לך db.SaveChanges?

עריכה: לא שמתי לב שמדובר ב linq to sql, שכח מזה :)

פורסם

יש להניח שהבעיה בהגדרות של linq או במיפוי של הטבלה ל-linq. יכול להיות שלא מוגדר ל-linq ה-primary key של הטבלה?

פורסם
  • מחבר

שדה ה Username מוגדר כ Primary key

[attachment deleted by admin]

פורסם
  • מחבר

רק דבר אחד שכדאי לחשוב עליו זה שאם אתה עובד עם DB מבוסס קבצים אז בכל קימפול הקובץ mdf מאופס.

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

בלינק הזה מוסבר איך לגרום לקבצים לא להידרס...

http://msdn.microsoft.com/en-us/library/ms246989.aspx

תודה רבה לכולם! :)

ארכיון

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

דיונים חדשים