פורסם 2010 בדצמבר 3014 שנים אני עושה פרויקט בשפת C# ונתקלתי באיזו בעיה בקישור עם מסד הנתונים.יש לי בform מסוים מערך של 50 כפתורים ואני רוצה שעל כל כפתור יהיה תוכן כתוב שילקח מתוך טבלה במסד הנתונים,ניסיתי עם select from where ומסתבך לי שם משהו כל הזמן איך אני יכול לעדות את זה?יש דרכים?תודה מראש על העזרה..
פורסם 2010 בדצמבר 3014 שנים יעזור אם תתן קצת יותר אינפורמציה. אתה מצפה שננחש מה אתה עושה?כתוב כאן את הקוד שלך (מה שניסית לכתוב לפחות), ואיפה הבעיה בדיוק (אתה לא מצליח לכתוב את השאילתא? או שאתה מצליח לכתוב את השאילתא אבל לא מקבל נתונים נכונים?)
פורסם 2010 בדצמבר 3014 שנים מחבר זו פעולה שמבצעת הכנסת טקסט מתוך טבלה במסד למערך של כפתורים.הוא לא רושם לי שיש שגיאות בbuild אבל באמצע ההרצה הוא פתאום מפסיק את ההרצה ומסמן לי את השורה dataReader = datacommand.ExecuteReader();private void Visibl1() { OleDbCommand datacommand = new OleDbCommand(); datacommand.Connection = dataConnection; for (int i = 1; i <= this.numOfStations1; i++) { datacommand.CommandText = "SELECT Location" + "FROM tblStations" + "WHERE Line=" + this.name1 + "WHERE Num of stations=" + i; OleDbDataReader dataReader = datacommand.ExecuteReader(); dataReader.Read(); arrBtn[i].Visible = true; arrBtn[i].Text = dataReader.GetString(1);
פורסם 2010 בדצמבר 3014 שנים קרא בבקשה את הנושא הזה וערוך את ההודעה בהתאם:http://hwzone.co.il/community/index.php?topic=486679.0(דגש על סעיפים 3 ו-4)
פורסם 2010 בדצמבר 3114 שנים מה לא ברור ב:נא לציין את השגיאה במדויק.לא מספיק רק באיזו שורה הייתה השגיאה, אלא מה הייתה השגיאה בדיוק.בכל מקרה, שאילתת ה-SQL שלך לא טובה, מכמה סיבות:א. אין לך רווחים במקומות נכונים (תנסה להדפיס את המחרוזת או להסתכל עליה ב-debug ותבין למה אני מתכוון).ב. לא עושים פעמיים where. בשביל זה יש תנאי and.ג. מה זה Num of stations? לא יכול להיות רווח בשם של שדה בטבלה.
פורסם 2010 בדצמבר 3114 שנים מחבר מה זאת אומרת אין לי רווח במקומות הנכונים?הסתדרתי לגבי הandובשדה של טבלה יכול להיות רווח,זו לא הבעיה.
פורסם 2010 בדצמבר 3114 שנים אתה בטוח שבשם של שדה יכול להיות רווח?כמו שאמרתי, תדפיס את המחרוזת ותבין מה הבעיה.
פורסם 2010 בדצמבר 3114 שנים מחבר אוקיי העפתי את הרווח ושיניתי גם במסד...באמצע ההרצה הוא קופץ לי ורושם שגיאה:"שגיאת תחביר(אופרטור חסר) בביטוי השאילתה"זה הקוד:private void Visibl1() { try { OleDbCommand datacommand = new OleDbCommand(); datacommand.Connection = dataConnection; OleDbDataReader dataReader; string st; for (int i = 1; i <= this.numOfStations1; i++) { datacommand.CommandText = "SELECT Location" + "FROM tblStations" + "WHERE Line=" + this.name1+"AND Numofstation=" + i; dataReader = datacommand.ExecuteReader(); dataReader.Read(); st = dataReader.GetString(1); arrBtn[i].Visible = true; arrBtn[i].Text = st; if ((i % 11 != 0) && (i != this.numOfStations1)) arrPct[i].Visible = true; } for (int i = 1; i <= this.numOfStations2; i++) { arrBtn[i + 55].Visible = true; if ((i % 11 != 0) && (i != this.numOfStations2)) { arrPct[i + 55].Visible = true; } } } catch (Exception ex) { MessageBox.Show("Error accessing the database: " + ex.Message, "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
פורסם 2010 בדצמבר 3114 שנים אתה עדיין מתעקש לא להסתכל על המחרוזת הבעייתית. הבעיה היא לא המקומות שיש לך רווח, הבעיה היא המקומות שאין לך רווח.
פורסם 2010 בדצמבר 3114 שנים המחרוזת שלך היא כזו:"SELECT LocationFrom tblStationsWHERE line=nameAND Numofstation=1"עכשיו אתה מבין מה הבעיה?
פורסם 2010 בדצמבר 3114 שנים מחבר למה זה מתייחס לSELECT לFROM ולWHERE בתור חלק מהמחרוזת ולא בתור פקודות?
פורסם 2010 בדצמבר 3114 שנים כי זה אכן חלק מהמחרוזת?SQL זה לא משהו מובנה בתוך שפת התכנות. זו פשוט מחרוזת שמועברת לכלי נפרד (שרת ה-sql), והוא כבר דואג לנתח אותה ולפרש אותה.
פורסם 2010 בדצמבר 3114 שנים מחבר אוקיי אבל למה זה פשוט לא מושך את הנתונים מהמסד?כמו שהפקודה SELECT אמורה לעשות?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.