עבור לתוכן

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

Featured Replies

פורסם

אתה קורא את מה שאני כותב לך?

הפקודות שאתה כותב לא תקניות, ולכן הוא לא מסוגל לפרש אותן. כבר הראיתי לך בדיוק איפה הטעות שלך.

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

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

פורסם
  • מחבר

הבנתי,עשיתי רווחים איפה שצריך,תודה :xyxthumbs:

אבל הוא עושה לי שגיאה עכשיו רק לגבי החלק האחרון עם הAND

זה לא כתוב נכון?

datacommand.CommandText =
"SELECT Location " +
"FROM tblStations " +
"WHERE Line = " + this.name1+
"AND Numofstation= " + i;

פורסם

שים לב שעדיין חסר לך רווח בין ה-AND למה שלפניו. חוץ מזה עוד יש לך בעיה קטנה - את מה שמשווים ל-Line אתה צריך להעביר בגרשיים, כלומר:

"WHERE Line= \'" + this.name1 + "\'"

כדי ששרת ה-SQL יידע שזו מחרוזת.

פורסם

הגיע הזמן להתחיל ולעבוד עם ה Debugger.

תעשה Add Watch ל datacommand.CommandText ותראה בדיוק איך הסטרינג שלך נראה.

פורסם
  • מחבר

תודה רבה זו באמת הייתה הבעיה,

אבל כנראה עדיין יש בעיה בקוד כי כשאני מפעיל עדיין קופץ לי error

"לא ניתן ערך עבור אחד או יותר מבין הפרמטרים הדרושים"

תודה מראש על כל העזרה!

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

}
}

פורסם

לא טוב:

datacommand.CommandText =

"SELECT Location " +

"FROM tblStations " +

"WHERE Line = " +" this.name1"+

" AND Numofstation = " + i;

טוב:

datacommand.CommandText = "SELECT Location FROM tblStations WHERE line='"+this.name1+"' AND Numofstation = "+i

אם Line הוא עמודה מספרית אז תוריד את הגרשים ליד המרכאות.

פורסם
  • מחבר

line היא לא עמודה מספרית ועדיין זה נשאר לי עם אותה השגיאה..

זה קשור למסד נתונים עצמו?השגיאה הזאת?

פורסם

תדפיס את

datacommand.CommandText

ותראה את השאליתה שאתה מנסה לבצע, או דרך הדיבאגר או פשוט

;(MessageBox(datacommand.CommandText

סביר להניח ש this.name1 הוא ריק

פורסם

this.name1 לא אמור להיות בגרשיים...

חבל שבמשך 3 עמודים עדיין לא הפנמת ושפוט ניסית להדפיס בעצמך את השאילתה שבנית...

היה חוסך לך המון זמן...

פורסם
  • מחבר

this.name1 הוא לא ריק

ולא שמתי אותו בגרשיים

עשיתי מעקב באמצע ההרצה ובדקתי את הערך שלו,

הוא לא ריק ואני לא יודע מה הקשר להודעה הזאת כי אין שום פרמטרים אחרים חוץ מname1 שעושה את השגיאה הזאת.

פורסם
  • מחבר

הקוד:

 private void Visibl1()
{
try
{
OleDbCommand datacommand = new OleDbCommand();
datacommand.Connection = dataConnection;
OleDbDataReader dataReader;
string st;
dataConnection.Close();
for (int i = 1; i <= this.numOfStations1; i++)
{

dataConnection.Open();
datacommand.CommandText = "SELECT Location FROM tblStations WHERE Numofstation = " + i + " AND Line = " + this.name1;

dataReader = datacommand.ExecuteReader();
dataReader.Read();
st = dataReader.GetString(0);
arrBtn[i].Visible = true;
arrBtn[i].Text = st;
if ((i % 11 != 0) && (i != this.numOfStations1))
arrPct[i].Visible = true;
dataConnection.Close();

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

}
}

פורסם

עוד יש לך בעיה קטנה - את מה שמשווים ל-Line אתה צריך להעביר בגרשיים' date=' כלומר:

"Line= \'" + this.name1 + "\'"

כדי ששרת ה-SQL יידע שזו מחרוזת.

[/quote']

פורסם
  • מחבר

פתרתי את הבעיה תודה רבה!

יש איזושהי דרך לרשום בc#

"4א " ככה שה"א" יופיע משמאל ל4?

כל פעם שאני רושם הוא מעביר לי את ה"א" אוטומטית לצד ימין.

וככה הנתונים במסד ובc# לא תואמים.

ארכיון

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

דיונים חדשים