בעיה בשאילתת MAX

  • פותח הנושא sfu
  • פורסם בתאריך

sfu

New member
בעיה בשאילתת MAX

אני מנסה לעשות select max ב ASP.net ומשום מה אני הוא זורק לי טעות : זו השאילתה :
sqlStr = "SELECT MAX(chat_id) as max_id FROM chat"​
ואני מנסה לגשת אליו בעזרת אובייקט OleDbDataReader כך :
reader("max_id")​
והוא זורק לי שגיאה שהוא לא מוצא מידע אע"פ שהמאפיין של ה reader read הוא true כלומר הוא מצא תוצאות אני רק לא מצליח לשאוב אותם מישהו מכיר את התופעה ?
 

gilad g

New member
אמממ

קראת ל-reader.Read()
אגב, במקרה כזה, אני הייתי מעדיף להשתמש ב-ExecuteScalar:
sqlStr = "SELECT MAX(chat_id) as max_id FROM chat" Dim cmd As New OleDbCommand(sqlStr) Dim max as Integer = Convert.ToInt32(cmd.ExecuteScalar())​
אולי הקוד לא ממש נכון, אני קצת חלוד ב-vb.net
 

sfu

New member
אני מכיר את השיטה הזו

היא מחזירה לך רשומה אחת. זה באמת עובד רק אני מעוניין לשאול למה אם אני מנסה לקרוא את הרשומה בעזרת ניסיון לגשת למה שהגדרתי ב AS זה לא עובד ? אבל תודה בכל אופן
 

sfu

New member
הקוד

זה הקוד שאני מריץ (אני מריץ את זה בעזרת פונקציות ואובייקטים מובנים אני מניח שאתה מבין לבד מה עומד מאחוריהם
):
sqlStr = "SELECT MAX(chat_id) AS max_id FROM chat" dbObj.setReader(sqlStr) Response.Write(dbObj.reader("max_id"))​
והשגיאה:
Exception Details: System.InvalidOperationException: No data exists for the row/column.​
 

gilad g

New member
בפעם השלישית,

זה בגלל שלא קראת ל-Read()!
dbObj.reader.Read() Response.Write(dbObj.reader("max_id"))​
 
למעלה