פורסם 2011 ביוני 914 שנים שלום,ביצירת חיבור לDATABASE,בהפעלת פונקצית reader = comm.ExecuteReader();מתקבלת שגיאה בהרצה, המשתנה reader הינו NULL...אנא עזרתכם בבקשה...מצורף תצלום של השגיאה.[attachment deleted by admin]
פורסם 2011 ביוני 1014 שנים ארר, ארורים יהיו מיקרוסופט עם תרגום השגיאות שלהם לעברית.בכל מקרה, תגידי מה השאילתא שלך (זו שמוסתרת ע"י החלון...) ומה הטיפוסים של השדות שעליהם את מבצעת את השאילתא.
פורסם 2011 ביוני 1014 שנים מחבר כנראה שהבנתי את הבעיה שלי.פשוט בטבלה השדה מוגדר כמספר ואילו בקוד התייחסתי אליו כלמחרוזת ושמתי אותו בגרשיים..כאשר הוצאתי את הגרשיים זה הסתדר ב"ה. זה הקוד שלי עכשיו: comm.CommandText = "select tz from tbl_people where tz =" + tz_text.Text + " "; הבעיה שעכשיו הוא פשוט לא מוצא כל ערך בטבלה שעונה על השאילתא הזו,האם זה קשור לשינוי שעשיתי?? OleDbDataReader reader;reader = comm.ExecuteReader();reader.Read(); המשתנה reader ריק.תודה.אגב, איך מכניסים קוד לתיבה ע"מ להקל על הקריאה?
פורסם 2011 ביוני 1014 שנים את צריכה לבדוק את ערך ההחזרה של reader.Read בשביל לדעת אם יש עוד רשומות. כל קריאה ל-Read עוברת לרשומה הבאה. שימי לב שאת עושה פעמיים Read, ככה שאת מפספסת את הרשומה הראשונה שאת שולפת.
פורסם 2011 ביוני 1014 שנים אווף.לא, לא הבנתי.הערך חזרה היה ריק כשבדקתי.מסתומרת קוראת פעמיים.??לאחר שהכנסת לתוך הreader את הcomm.ExcuteReader, עשית reader.Read() פעם ראשונה ואז לתוך הreader נכנס המידע בשורה הראשונה מתוך הDB בהתאם לשאילתה. לאחר מכן יש פעם נוספת reader.Read() ואז בעצם זה ניגש למידע בשורה השניה(אם קיים).ולגבי הכנסה של הטקסט לתוך התיבת טקסט, אם אני זוכר נכון צריך ליהיות משהו כמו textBox.Text = "abc"
פורסם 2011 ביוני 1014 שנים מחבר נניח והוא באמת קורא את שורה מספר 2 ולא את שורה מספר 1 - בכל זאת, קיים ערך בטבלה בשורה מספר 2, לא מבינה למה הוא לא מזהה אותו.
פורסם 2011 ביוני 1014 שנים שלום,אני מניח שהערך בטבלה הוא VARCHAR או STRING דומה אחר ולכן השאילתה צריכה להיות משהו כזה:select * from [tableName] where [columName]='"+TextBox.Text+"'";שים לב שיש עוד ' בין שני הגרשיים.בהצלחה
פורסם 2011 ביוני 1014 שנים נניח והוא באמת קורא את שורה מספר 2 ולא את שורה מספר 1 - בכל זאת, קיים ערך בטבלה בשורה מספר 2, לא מבינה למה הוא לא מזהה אותו.העניין הוא שצריך ליהיות בטבלה ערך שמתאים לשאילתה. comm.CommandText = "select tz from tbl_people where tz =" + tz_text.Text + " ";ממה שאני מבין, צריך ליהיות ת.ז בטבלה ששווה לת.ז שהמשתמש מקליד.נניח שקיימים בטבלה שני אנשים שיש להם את אותו מספר ת.ז, לדוגמא:אבי כהן עם ת.ז של 123456789ומוטי במבוק עם ת.ז של 123456789אז ברגע שאת מריצה שאילתה בשביל למצוא את הת.ז של האנשים שהת.ז שלהם הוא 123456789 אז בעצם יחזרו 2 ערכים:123456789 של אבי כהן123456789 של מוטי במבוקברגע שאת עושה excuteReader בעצם נכנס המידע שכתבתי למעלה לתוך הreader.לאחר הreader.Read() הראשון את בעצם קוראת את ה123456789 של אבי כהןולאחר הreader.Read() השני (בתנאי) את קוראת את ה123456789 של מוטי במבוק.אני מניח שבהמשך הקוד את מנסה להוציא את המידע מהreader ואז את מקבלת את הת.ז של מוטי במבוק.ז"א שאם אין לך בטבלה שני אנשים אם אותו מספר ת.ז (קצת לא הגיוני שיהיה כזה מצב) אז לא יחזור לך ערך.
פורסם 2011 ביוני 1014 שנים מחבר ואאו, תודה על ההסבר המפורט..אז איך אני מונעת את הבעיה הזו של הכפילות בעצם??אני רוצה ליצור מצב שהשאילתא תרוץ לשורה שבה הת.ז הוא הת.ז שהוכנס לי בTEXT..
פורסם 2011 ביוני 1014 שנים ואאו, תודה על ההסבר המפורט..אז איך אני מונעת את הבעיה הזו של הכפילות בעצם??אני רוצה ליצור מצב שהשאילתא תרוץ לשורה שבה הת.ז הוא הת.ז שהוכנס לי בTEXT..השאילתה רצה לשורה שבה הת.ז הוא הת.ז, רק קריאה מהreader נעשת פעמיים.הפתרון מאוד פשוט, מחקי את reader.Read() הראשון (ישר אחרי הexcuteReader), ואז לתוך סתם איזה Label שישמש לבדיקה, תכניסי את reader.GetString() ואז את אמורה לראות את הת.ז שכתוב לך בתיבת טקסט. רק חשוב שתעשי את הפעולות האלה אחרי התנאי שבו יש את הreader.Read()
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.