פורסם 2011 בינואר 2114 שנים מחבר select * from Korym where UserPassword=12345 AND UserNickName="yossi"
פורסם 2011 בינואר 2114 שנים סבבה. עכשיו, אם אני רוצה לכתוב פונקציה שתקבל את שם המשתמש והסיסמה (במקרה הזה מחרוזת שמכילה yossi ו-int שמכיל 12345) ומחזירה את השאילתא הרצויה, מה צריך לכתוב?
פורסם 2011 בינואר 2214 שנים מחבר public void ReaderPassword(string UserNickName, int UserPassword) { return "select * from Korym where UserPassword=12345 AND UserNickName="yossi"" }
פורסם 2011 בינואר 2214 שנים קודם כל, ניסית לכתוב את הפונקציה? אם תנסה, תשים לב שהיא לא מתקמפלת. חוץ מזה: סבבה. עכשיו, אם אני רוצה לכתוב פונקציה שתקבל את שם המשתמש והסיסמה ומחזירה את השאילתא הרצויה, מה צריך לכתוב? יענו, אם אני מעביר לפונקציה "dani" ו-98765 אז אני לא רוצה שתחזור לי השאילתא של yossi ו-12345, אלא השאילתא של dani ו-98765.
פורסם 2011 בינואר 2214 שנים מחבר שניצל תעשה לי טובה תתקן לי את זה כמו שצריך ואחרי זה אני מבטיח לך שאני אבין את הקוד. ה"שלב-שלב" הזה רק מבלבל אותי כי אני לא יודע איך לבנות שאילתא כמו שצריך,שלא נדבר על החיבור לבסיס הנתונים שלא מצליח מי יודע מה. אני מסכים איתך בנוגע ל- :s07:
פורסם 2011 בינואר 2214 שנים זה לא קשור לשאילתות, זה קשור למשהו הרבה יותר בסיסי (מחרוזות).אתה רוצה לכתוב שורת קוד שמקבלת את שני הפרמטרים UserNickName ו-UserPassword ובונה שאילתא לפיהם.אז הקוד שלך צריך להיות:string.Format("select * from Korym where UserPassword={0} and UserNickName=\"{1}\"", UserPassword, UserNickName)ככה שתלנו את התוכן של המשתנים UserPassword ו-UserNickName בתוך השאילתא. כיוון ש-UserNickName הוא מחרוזת, בתוך השאילתא הוא צריך להופיע במרכאות. אבל, בשביל לכתוב מרכאות בתוך מחרוזת צריך להשתמש ב-escaping, כלומר צריך לכתוב "\ במקום סתם ".עכשיו אתה מבין?
פורסם 2011 בינואר 2214 שנים מחבר טוב אז אחרי שינויים רבים עדיין לא הצלחתי לגרום לזה לעבוד . public void ReaderPassword(string UserNickName, int UserPassword) { 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]; dr["UserPassword"] = UserPassword; Sqlhelper.update(ds, "select * from Korym", "Korym"); } }
פורסם 2011 בינואר 3114 שנים אתה בטוח שהשאילתא שקוראת מצליחה?אולי עף איזשהו exception במהלך התוכנית? (למיטב זכרוני כבר הראיתי לך איך לתפוס אותן)
פורסם 2011 בפברואר 1014 שנים מחבר הבעיה נפתרה. קודם כל ה PK לא היה תקין כלומר,הPK היה הסיסמא ולא הUserNickName. שתיים השאילתא היה צריך לשים ' ולא " אסור גרשיים בתוך גרשיים.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.