1
我想填充兩個不同的列表,我正在從數據庫中讀取兩個不同的列表。這裏是我的代碼:只有兩個列表框中的一個正在填充按鈕點擊
private void StartSchedule_Click(object sender, EventArgs e)
{
string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\A2 Computing\C# Programming Project\TriHard.accdb";
string SelectQuery = "SELECT Time.AthleteID, Athlete.AthleteName, Time.EventTime, Event.EventDistance FROM Event INNER JOIN (Athlete INNER JOIN [Time] ON Athlete.[AthleteID] = Time.[AthleteID]) ON Event.[EventID] = Time.[EventID];";
OleDbConnection Connection = new OleDbConnection(ConnectionString);
OleDbCommand Command = new OleDbCommand(SelectQuery, Connection);
Command.Connection.Open();
OleDbDataReader Reader = Command.ExecuteReader(CommandBehavior.CloseConnection);
PaceCalculator pace = new PaceCalculator();
List<PaceCalculator> Distancelist = new List<PaceCalculator>();
while (Reader.Read())
{
pace = new PaceCalculator();
pace.Distance = (int)Reader["EventDistance"];
Distancelist.Add(pace);
}
listBox1.DisplayMember = "Distance";
listBox1.DataSource = Distancelist;
List<PaceCalculator> TimeList = new List<PaceCalculator>();
while (Reader.Read())
{
pace = new PaceCalculator();
pace.Time = (string)Reader["EventTime"];
TimeList.Add(pace);
}
listBox2.DisplayMember = "Time";
listBox2.DataSource = TimeList;
}
當我按下按鈕時,listBox1被填充,但listBox2不是。我該如何解決這個問題,因爲兩個盒子都是相鄰的?
我認爲你缺少一條線。在該代碼中,第二個列表框將從零開始讀取(因爲前一個已經讀取了所有內容)。 – BradleyDotNET 2015-02-05 18:31:34
@BradleyDotNET我將如何去改變它? – 2015-02-05 18:32:18
將pace.Time和TimeList放在第一個while循環中。就是這樣,或者你用另一個Command對象創建另一個Reader。您需要使用{}塊來處理它們。現在,你不關閉你的數據庫連接等。 – LarsTech 2015-02-05 18:33:01