עבור לתוכן

עזרה בC# חיבור עם מסד נתונים

Featured Replies

פורסם

אני עושה פרויקט בשפת C# ונתקלתי באיזו בעיה בקישור עם מסד הנתונים.

יש לי בform מסוים מערך של 50 כפתורים ואני רוצה שעל כל כפתור יהיה תוכן כתוב שילקח מתוך טבלה במסד הנתונים,

ניסיתי עם select from where ומסתבך לי שם משהו כל הזמן איך אני יכול לעדות את זה?יש דרכים?

תודה מראש על העזרה..

  • תגובות 31
  • צפיות 7k
  • נוצר
  • תגובה אחרונה

משתתפים בולטים בדיון

פורסם

יעזור אם תתן קצת יותר אינפורמציה. אתה מצפה שננחש מה אתה עושה?

כתוב כאן את הקוד שלך (מה שניסית לכתוב לפחות), ואיפה הבעיה בדיוק (אתה לא מצליח לכתוב את השאילתא? או שאתה מצליח לכתוב את השאילתא אבל לא מקבל נתונים נכונים?)

פורסם
  • מחבר

זו פעולה שמבצעת הכנסת טקסט מתוך טבלה במסד למערך של כפתורים.

הוא לא רושם לי שיש שגיאות ב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);

פורסם
  • מחבר

סבבה ערכתי אותה לפי התנאים..

פורסם

מה לא ברור ב:

נא לציין את השגיאה במדויק.

לא מספיק רק באיזו שורה הייתה השגיאה, אלא מה הייתה השגיאה בדיוק.

בכל מקרה, שאילתת ה-SQL שלך לא טובה, מכמה סיבות:

א. אין לך רווחים במקומות נכונים (תנסה להדפיס את המחרוזת או להסתכל עליה ב-debug ותבין למה אני מתכוון).

ב. לא עושים פעמיים where. בשביל זה יש תנאי and.

ג. מה זה Num of stations? לא יכול להיות רווח בשם של שדה בטבלה.

פורסם
  • מחבר

מה זאת אומרת אין לי רווח במקומות הנכונים?

הסתדרתי לגבי הand

ובשדה של טבלה יכול להיות רווח,זו לא הבעיה.

פורסם

אתה בטוח שבשם של שדה יכול להיות רווח?

כמו שאמרתי, תדפיס את המחרוזת ותבין מה הבעיה.

פורסם
  • מחבר

אוקיי העפתי את הרווח ושיניתי גם במסד...

באמצע ההרצה הוא קופץ לי ורושם שגיאה:

"שגיאת תחביר(אופרטור חסר) בביטוי השאילתה"

זה הקוד:

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

}
}

פורסם

אתה עדיין מתעקש לא להסתכל על המחרוזת הבעייתית. הבעיה היא לא המקומות שיש לך רווח, הבעיה היא המקומות שאין לך רווח.

פורסם
  • מחבר

אתה יכול להרחיב קצת יותר?אני פשוט לא מבין למה אתה מתכוון..

פורסם

המחרוזת שלך היא כזו:

"SELECT LocationFrom tblStationsWHERE line=nameAND Numofstation=1"

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

פורסם
  • מחבר

למה זה מתייחס לSELECT לFROM ולWHERE בתור חלק מהמחרוזת ולא בתור פקודות?

פורסם

כי זה אכן חלק מהמחרוזת?

SQL זה לא משהו מובנה בתוך שפת התכנות. זו פשוט מחרוזת שמועברת לכלי נפרד (שרת ה-sql), והוא כבר דואג לנתח אותה ולפרש אותה.

פורסם
  • מחבר

אוקיי אבל למה זה פשוט לא מושך את הנתונים מהמסד?

כמו שהפקודה SELECT אמורה לעשות?

ארכיון

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

דיונים חדשים