עבור לתוכן

לא מוצא את הבעיה בשאילתא.

Featured Replies

פורסם
  • מחבר

select * from Korym where UserPassword=12345 AND UserNickName="yossi"

פורסם

סבבה. עכשיו, אם אני רוצה לכתוב פונקציה שתקבל את שם המשתמש והסיסמה (במקרה הזה מחרוזת שמכילה yossi ו-int שמכיל 12345) ומחזירה את השאילתא הרצויה, מה צריך לכתוב?

פורסם
  • מחבר

public void ReaderPassword(string UserNickName, int UserPassword)
{
return "select * from Korym where UserPassword=12345 AND UserNickName="yossi""
}

פורסם

:facepalm:

קודם כל, ניסית לכתוב את הפונקציה? אם תנסה, תשים לב שהיא לא מתקמפלת.

חוץ מזה:

סבבה. עכשיו, אם אני רוצה לכתוב פונקציה שתקבל את שם המשתמש והסיסמה ומחזירה את השאילתא הרצויה, מה צריך לכתוב?

יענו, אם אני מעביר לפונקציה "dani" ו-98765 אז אני לא רוצה שתחזור לי השאילתא של yossi ו-12345, אלא השאילתא של dani ו-98765.

פורסם
  • מחבר

שניצל תעשה לי טובה תתקן לי את זה כמו שצריך ואחרי זה אני מבטיח לך שאני אבין את הקוד.

ה"שלב-שלב" הזה רק מבלבל אותי כי אני לא יודע איך לבנות שאילתא כמו שצריך,שלא נדבר על החיבור לבסיס הנתונים שלא מצליח מי יודע מה.

אני מסכים איתך בנוגע ל- :s07: :s07:

פורסם

זה לא קשור לשאילתות, זה קשור למשהו הרבה יותר בסיסי (מחרוזות).

אתה רוצה לכתוב שורת קוד שמקבלת את שני הפרמטרים UserNickName ו-UserPassword ובונה שאילתא לפיהם.

אז הקוד שלך צריך להיות:

string.Format("select * from Korym where UserPassword={0} and UserNickName=\"{1}\"", UserPassword, UserNickName)

ככה שתלנו את התוכן של המשתנים UserPassword ו-UserNickName בתוך השאילתא. כיוון ש-UserNickName הוא מחרוזת, בתוך השאילתא הוא צריך להופיע במרכאות. אבל, בשביל לכתוב מרכאות בתוך מחרוזת צריך להשתמש ב-escaping, כלומר צריך לכתוב "\ במקום סתם ".

עכשיו אתה מבין?

פורסם
  • מחבר

טוב אז אחרי שינויים רבים עדיין לא הצלחתי לגרום לזה לעבוד :nixweiss:.



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");
}
}




  • 2 שבועות מאוחר יותר...
פורסם
  • מחבר

כלום,זה פשוט לא משנה את הסיסמא.

על פני השטח,בדיבאגינג הכל תקין

פורסם

אתה בטוח שהשאילתא שקוראת מצליחה?

אולי עף איזשהו exception במהלך התוכנית? (למיטב זכרוני כבר הראיתי לך איך לתפוס אותן)

  • 2 שבועות מאוחר יותר...
פורסם
  • מחבר

הבעיה נפתרה.

קודם כל ה PK לא היה תקין כלומר,הPK היה הסיסמא ולא הUserNickName.

שתיים השאילתא היה צריך לשים ' ולא " אסור גרשיים בתוך גרשיים. :)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים