פורסם 2011 בינואר 2114 שנים השאליתא אמורה לבדוק שהשם משתמש והסיסמא תואמים ועל כן לשנות את הסיסמא. //עידכון סיסמא של קורא public void ReaderPassword(string UserNickName, int UserPassword, int NewPass) { DataSet ds = Sqlhelper.fill(string.Format("select * from Korym where UserPassword={0} AND UserNickName={1}", "UserPassword", "UserNickName"), "Korym"); if (ds.Tables["Korym"].Rows.Count > 0) { DataRow dr = ds.Tables["Korym"].Rows[0]; if(dr["UserNickName"]=="UserNickName") { if (dr["UserPassword"] == "UserPassword".ToString()) { dr["UserPassword"] = NewPass; Sqlhelper.update(ds, "select * from Korym", "Korym"); } } } }
פורסם 2011 בינואר 2114 שנים תדפיס את המחרוזת שאתה מעביר לשאילתא (או שתסתכל עליה ב-debug) וכבר תבין מה הבעיה.(רמז: היא לא שונה בהרבה מהבעיות שהיו לך עד עכשיו)
פורסם 2011 בינואר 2114 שנים מחבר בdebug אני לא רואה שום בעיה אבל הוא לא משנה את הסיסמא. ניסיתי להבין מה הבעיה במחרוזת ואני עדיין לא מבין...
פורסם 2011 בינואר 2114 שנים נניח שהפרמטרים שעוברים לפונקציה הם "yossi" ו-12345. אז מה השאילתא שמועברת ל-Sqlhelper.fill ?
פורסם 2011 בינואר 2114 שנים מחבר t("select * from Korym where UserPassword={0} AND UserNickName={1}", "UserPassword", "UserNickName"), "Korym");השאילתא הזו לפי הבנתי
פורסם 2011 בינואר 2114 שנים מחבר "UserPassword", "UserNickName" אלה השדות שהוא מאחזר.if(dr["UserNickName"]=="UserNickName") זו המחרוזת שהוא בודק.
פורסם 2011 בינואר 2114 שנים מחבר טוב מן הסתם שאני לא מבין איפה הטעות אז אני אסביר כל שורה מה היא עושה לפי מה שאני יודע.פונקציה מקבלת שם סיסמא וסיסמא חדשה public void ReaderPassword(string UserNickName, int UserPassword, int NewPass) { שאילתא שמאחזרת את הסיסמא והשם משתמש כאן יוסי ו12345 נכנסים לתמונה. DataSet ds = Sqlhelper.fill(string.Format("select * from Korym where UserPassword={0} AND UserNickName={1}", "UserPassword", "UserNickName"), "Korym");אני חושב שזה בודק אם יש בכלל נתונים בטבלה הזו. if (ds.Tables["Korym"].Rows.Count > 0) { DataRow dr = ds.Tables["Korym"].Rows[0]; השוואת שם המתשמש אם הוא זהה(נראה לי שיש לי פה טעות כי בפרמטר של הפונקציה המחרוזת של השם היא זהה לזו שבטבלה) if(dr["UserNickName"]=="UserNickName") { אותו עיקרון if (dr["UserPassword"] == "UserPassword".ToString()) { dr["UserPassword"] = NewPass; Sqlhelper.update(ds, "select * from Korym", "Korym"); } } } }אולי תסביר לי איך זה עובד פה כי לפי מה שאתה רוצה זה לא בדיוק ברור לי ולכן אני לא יכול לענות לך על השאלה בבירור.
פורסם 2011 בינואר 2114 שנים הבעיה היא שזו המחרוזת שאתה מעביר:select * from Korym where UserPassword=UserPassword AND UserNickName=UserNickNameבמקום להעביר לה את UserPassword ו-UserNickName אתה מעביר "UserPassword" ו-"UserNickName", שהן סתם מחרוזות, ולא הפרמטרים שהועברו לפונקציה.
פורסם 2011 בינואר 2114 שנים מחבר גם אחרי שתיקנתי את זה זה עדיין לא עובד.משהו מתפקשש לי באופרטור של הIF.שינתי את UserPass ממחרוזת למשתנה אבל עדיין זה לא עובד.קשה לי להבין בחקלים אני חושב שהכי טוב שאני אראה את כל הבלוק קוד מתוקן וככה אני אוכל לשאול שאלות ולהבין סוף-סןף
פורסם 2011 בינואר 2114 שנים מחבר public void ReaderPassword(string UserNickName, int UserPassword, int NewPass) { DataSet ds = Sqlhelper.fill(string.Format("select * from Korym where UserPassword=UserPassword AND UserNickName=UserNickName"), "Korym"); if (ds.Tables["Korym"].Rows.Count > 0) { DataRow dr = ds.Tables["Korym"].Rows[0]; if (dr["UserNickName"] == "UserNickName") { if (dr["UserPassword"] == UserPassword.ToString()) { dr["UserPassword"] = NewPass; Sqlhelper.update(ds, "select * from Korym", "Korym"); } } } } :bash: :bash:
פורסם 2011 בינואר 2114 שנים טרחת לקרוא בכלל את ההודעה שכתבתי לך?הבעיה היא שזו המחרוזת שאתה מעביר:select * from Korym where UserPassword=UserPassword AND UserNickName=UserNickNameבמקום להעביר לה את UserPassword ו-UserNickName אתה מעביר "UserPassword" ו-"UserNickName"' date=' שהן סתם מחרוזות, ולא הפרמטרים שהועברו לפונקציה.[/quote']בוא נעשה את זה צעד אחר צעד: אם אני רוצה לעשות שאילתת SQL שתחזיר לי את כל הרשומות מהטבלה Korym ששם המשמש שלהם הוא yossi והססמה היא 12345. איזו שאילתא אתה צריך?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.