עבור לתוכן

בעיה עם ביצוע עידכון למסד נתונים ב- C#

Featured Replies

פורסם

יש לי בעיה עם עידכון נתונים ב- C#.

בניתי תוכנית שמציגה טבלה אחת ממסד נתונים ב- Access שבניתי.

בשביל לבצע עידכון, הוספה ומחיקה הוספתי את השורות האלו:

OleDbCommandBuilder booksCommands = new OleDbCommandBuilder(General.daBooks);
General.daBooks.InsertCommand = booksCommands.GetInsertCommand();
General.daBooks.UpdateCommand = booksCommands.GetUpdateCommand();
General.daBooks.DeleteCommand = booksCommands.GetDeleteCommand();

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

currentRow["name"] = textBox2.Text;
General.daBooks.Update(General.ds.Tables["Books"]);

הערה: אני לא משתמש במשפטי SQL אלא משנה את השורות עצמן כמו בקוד למעלה.

הבעיה שלי היא שבשורה השנייה מתוך אלה:

currentRow["year"] = int.Parse(textBox3.Text);
General.daBooks.Update(General.ds.Tables["Books"]);

זה רושם לי "שגיאת תחביר במשפט UPDATE".

אם אני מוחק את השורה הראשונה השורה השנייה עובדת.

שמתי לב גם שנוצרת שגיאה רק כאשר אני באמת משנה את השנה, כלומר אם אני רושם 1992 במקום 1991 במקור זה ייתן לי שגיאה, אבל אם אני לא משנה את השנה (משאיר 1991) זה לא ייתן לי שגיאה.

מישהו יכול לעזור לי?

ניסיתי לחפש את השגיאה מלא זמן אבל לא מצאתי.

פורסם

במקום int.parse תנסה DateTime.Parse

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

פורסם
  • מחבר

השדה year מוגדר כמספר.

ארכיון

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

דיונים חדשים