שאילתה מטופשת ---עזרה!!!!!

sליאורה

New member
שאילתה מטופשת ---עזרה!!!!!

אין לי מושג WHERE לא מקבל את המשתנ
private void LBname_SelectedIndexChanged(object sender, System.EventArgs e) { lblocation.Items.Clear(); string stragloc = LBname.Items[LBname.SelectedIndex].ToString(); string sSQL = "select Distinct agency_location "+ "from [implamantion followup manager]"; "Where agancy_name = stragloc"; OleDbCommand GetAgancy = new OleDbCommand(sSQL, Conn); try { Conn.Open(); objDR = GetAgancy.ExecuteReader(); while (objDR.Read()) { lblocation.Items.Add(objDR.GetValue(0)); } } catch (System.Exception x) { MessageBox.Show(x.ToString()); } finally { Conn.Close(); } }​
 

wingi

New member
תנסה ככה:

select Distinct agency_location from [implamantion followup manager] Where agancy_name = 'stragloc'";​
 
תגובה

כרגע עפ"י מה שהצגת,
string sSQL = "select Distinct agency_location "+ "from [implamantion followup manager]"; "Where agancy_name = stragloc";​
הwehere לא מקבל משתנה כי הstragloc הוא כרגע קבוע הוא חלק מהמחרוזת בדיוק כמו שאר התווים שמופיעים במחרוזת ,את צריכה לעשות שירשור(חיבור) של המשתנה עם המחרוזת, משהו כזה:
" Where agancy_name =" + stragloc​
ככה הstragloc הוא משתנה עם תקיפי אותו במרכאות "" הוא יהיה קבוע מסוג מחרוזת . זה לגבי הבעייה ובאופן כללי ,ניתן כמובן להשתמש בSP שאילתה מאוחסנת כפי שהציע ג'אסטין. בכול מקרה עדיף שתפשפי קצת בחומר ותביני קודם את הבסיס. בהצלחה.
 
אופס, עוד משהו קטן

מכיוון שזה פרמטר מחרוזת צריך להוסיף מסביבו גרש "'"+ Where agancy_name ='" + stragloc "
 

sליאורה

New member
זהו שזה לא עובד עדיין...

עשיתי כפי שכולכם הצעתם בנדיבותכם הרבה. אך אני מקבלת שגיאה : MISSING OPERATOR. להלן השאילה המתוקנת:
string sSQL ="select agency_location from [implamantion followup manager] Where agency_name = " + stragloc;​
לתגובתכם האדיבה...
 
למעלה