מוזר

yuval k

New member
../images/Emo18.gif שרשר שאלותיך!

שאפנה אותך למאמר
השגיאה אומרת שלא ניתן ערך לפרמטר נחוץ - האם בדקת, או אתה בודק, שכל הפרמטרים מועברים?
 

Admini

New member
2 דברים ../images/Emo13.gif

1. שכחתי שאני בפורום שלא מוריד כ"כ מהר הודעות לעמוד השני
2. העמוד וכל רכיביו עובדים במלואם על המחשב שלי... למיטב ידיעתי כל הפרמטרים מועברים.
 

gilad g

New member
שכחת סוגריים:

Dim oReader As OleDBDataReader = Cmd.ExecuteReader()​
זה אחד ההבדלים (המבורכים) בין VB ל-VB.NET.
 

Admini

New member
לא עזר ../images/Emo4.gif

בבית זה עבד אגב בלי הסוגריים...
 

gilad g

New member
../images/Emo41.gif עליתי על הבעיה

שים לב לסוג ה-Exception - הסוג הוא OleDbException, ככה שהשגיאה היא לא שגיאת חוסר פרמטרים (כי אחרת היית מקבל שגיאת קומפילציה בכלל), אלא שגיאת מסד נתונים. פשוט לא סיפקת את הפרמטרים הדרושים לשאילתה שלך. אתה צריך להוסיף אותם ע"י cmd.parameters.add. אבל אני חושב שהבעיה היא שכתבת לא נכון את השם של אחד השדות בשאילתה שלך. אני מציע שתעלה אותה לפה
 

Admini

New member
הממ... אתה צודק !!!

יש צורך לעדכן את המסד נתונים בשרת ת-ו-ד-ה ענקית !
 

Admini

New member
מוזר

ExecuteReader requires an open and available Connection. The connection's current state is Closed.​
כששורה וחצי לפני כתוב
On Error Resume Next Conn.Open() On Error Goto 0 Dim Cmd = new OleDbCommand(strSQL, Conn) Dim oReader As IDataReader = Cmd.ExecuteReader()
השורה המודגשת היא הבעייתית.
 

yuval k

New member
ניסיון לתשובה ../images/Emo26.gif

נסה אולי לפתוח את החיבור אחרי שאתה מגדיר את Cmd...
 

Admini

New member
בדיקה נוספת

העלתה שהחיבור פתוח בכלל עוד לפני הפונקציה יש רעיון ?
 

gilad g

New member
זה בגלל

שה-Conn.Open נכשל, אבל בגלל שכתבת On Error Resume Next, הוא לא התייחס לזה שיש לך שגיאה, ופשוט ניסה לפתוח את ה-Reader על קונשקן סגור, מה שנתן שגיאה. אל תשתמש ב-On error (לא ידעתי שדבר כזה קיים בכלל ב-VB.NET). תשתמש ב-Try..Catch..Finally...End Try. גישה הרבה יותר אינטואיטיבית, שמתאימה בדיוק למה שאתה צריך, ומיועדת למנוע תקלות מסוג הדבר ה"מוזר" הזה שקרה לך פה. דוגמא:
Try Conn.Open() Catch (e As Exception) ' לא סגור על הסינטקס של השורה הזאת 'There has been an error - display the error to the user. Finally Conn.Close() End Try​
 

Admini

New member
אז בדקתי את מה שכתבת

The connection is already Open (state=Open, Fetching).​
כאשר אני מבטל את ה-On Error Resume Next....
 

Admini

New member
מצאתי ../images/Emo70.gif

התברר שזה היה פתוח, והיה פתוח בפונקציה אחרת Reader..
 

yuval k

New member
כן, חשבתי שהוא עף בפתיחה ../images/Emo4.gif

מסקנה - לנסות לבדוק דברים הקשורים להודעת השגיאה.
 
למעלה