ADO.NET לא מוצא את השגיאה

קישוא

New member
ADO.NET לא מוצא את השגיאה

אני אודה לכם מאוד אם תעזרו לי למצוא את השגיאה! אני לא יכול לעדכן/להוסיף/למחוק נתונים מהמסד, אלא רק להציג אותם! ב-try...cotch זה לא מצליח לעבור... ex מכיל את השגיאה:
System.Data.OleDb.OleDbException: Could not delete from specified tables. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at ASP.default_aspx.ExecuteStatement(Object strSQL)​
תודה מראש!
 

gilad g

New member
קוד רלוונטי בבקשה,

ותראה את ה-CommandText של ה-Command שאתה מנסה להריץ.
 

קישוא

New member
commandtext זה המשפט SQL?

אני מתכנת asp.net מתחיל ואני עדיין בשלבי לימוד. בכל מקרה, זה המשפט sql אם לזה התכוונת:
Dim strSQL As String = "DELETE FROM tblUsers WHERE UserID = " & _ e.Item.ItemIndex + 1​
אבל לא נראה לי שפה הבעיה, כי גם במשפטי עידכון והוספה יש בעיה. אולי איפשהו בחלק הזה נמצאת השגיאה:
Function ExecuteStatement(strSQL) Dim objCmd As New OleDbCommand(strSQL, Conn) Try objCmd.Connection.Open() objCmd.ExecuteNonQuery() Catch ex As Exception lblMessage.Text = "Error updateing the database." sql.Text = ex.ToString End Try objCmd.Connection.Close() End Function​
 

gilad g

New member
הממממ

כן, התכוונתי למשפט SQL, אבל התכוונתי להדפסה שלו אחרי כל השרשורים וכל הבלאגנים... פשוט תראה את התוכן של strSQL (ביצוע של Response.Write יספיק
) על איזו שורה מתקבלת השגיאה? מהן השגיאות שמתקבלות במשפטי עדכון והוספה? יש לי כדור בדולח ביד? ניסית לגגל?
 

קישוא

New member
אוקי... אני עושה לך Response.Write

לכל משפטי ב-SQL: אבל אני מקווה שהבנת שאין לי שגיאת תחביר. פשוט ה-try...catch מפעיל את ה-cotch. מחיקה:
DELETE FROM tblUsers WHERE UserID = 1​
עידכון:
UPDATE tblUsers SET FirstName = 'Christopher',LastName = 'Payne',Address = '1335 ASP Street',City = 'ASPTown',State = 'ID',Zip = '83657',Phone = '800-555-4594' WHERE UserID = 1​
הוספה:
INSERT INTO tblUsers (FirstName, LastName, Address, City, State, Zip, Phone) VALUES ('s', 's', 's', 's', 's', 's', 's')​
תודה על המענה המהיר!
 

gilad g

New member
מאיזה סוג UserID?

(לא ענית לי על שאר השאלות... הסתכלת על הלינק?)
 

קישוא

New member
מצטער...

ה-userid הוא מספר אוטומאטי אני לא יודע אנגלית ברמה שתספיק לי להבין את הגיגול שלך השגיאה היא התנאי try...cotch, בשורה: 136 ex של עידכון:
System.Data.OleDb.OleDbException: Operation must use an updateable query. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at ASP.default_aspx.ExecuteStatement(Object strSQL)​
ex של הוספה:
System.Data.OleDb.OleDbException: Operation must use an updateable query. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at ASP.default_aspx.ExecuteStatement(Object strSQL)​
כל השדות במסד banking.mdb הם מסוג Text, חוץ מה-userid
 

gilad g

New member
הממ

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

קישוא

New member
יייששש!!! אני מתכנת ASP.NET!!!

תודה רבה לך, gilad g!!! עזרת לי מאוד!! איזו בתרגשות... 4 שנים אני לומד HTML & JavaScript & DOM & CSS וחלומי היה לדעת לשלוף/לעדכן/להוסיף/למחוק נתונים ממסד נתונים והנה הגיע הרגע!!! אתה איש טוב... תהיה בריא... שיהיה לך בהצלחה בחיים והרבה מזל! שלכם, מתכנת asp.net, קישוא.
 
למעלה