私はSqlDatabaseからデータを読みたかったが、私はIndexOutOfRangeExceptionを取得していますが、ここで私のテーブルのスクリーンショットです: インデックス - C#
だからここに私がデータを取得する機能を持っていますデータベースと店からそれレッスンクラスのリストに、私は)lessons.Add(で例外を取得しています:
public List<Lesson> GetLessonsFromDay(string Day)
{
command.CommandText = "SELECT * FROM [Scadule] WHERE [day]='" + Day + "'";
con.Open();
SqlDataReader sdr = command.ExecuteReader();
List<Lesson> lessons = new List<Lesson>();
while (sdr.Read())
{
lessons.Add(new Lesson(Day, (int)sdr["[num]"], (string)sdr["[time]"],(string)sdr["[class]"],(string)sdr["[where]"]));
}
con.Close();
return lessons;
}
そして、ここに私のlessonClass:
public class Lesson
{
public Lesson(string Day, int Num, string Time, string Class, string Where)
{
this.Day = Day;
this.Num = Num;
this.Time = Time;
this.Class = Class;
this.Where = Where;
}
public string Day { get; set; }
public int Num { get; set; }
public string Time { get; set; }
public string Class { get; set; }
public string Where { get; set; }
}
おそらく、あなたのsdr []アクセスのうちの1つが間違っています。それぞれを文字列変数に割り当て、デバッガでどの変数が失敗するかを確認します。 – OldProgrammer
なぜインデックス化された値を取得しようとしているときにインデクサー文字列の '[]'を使用しているのだろうか? 代わりに '(int)sdr [" num "]、' –