1
我正在這樣做的WPF c#,我想從數據庫中填充一些記錄。有21條記錄。C#for循環顯示所有記錄
這裏是我的代碼看起來像:
private void PopulateQuestion(int activityID, int taskID)
{
IList<ModelSQL.question> lstQuestion = qn.GetRecords(taskID, activityID);
for(int i= 0 ; i<=lstQuestion.Count()-1; i++)
{
TextBlock tb = new TextBlock();
tb.FontSize = 19;
tb.FontWeight = FontWeights.Bold;
tb.Text = lstQuestion[i].QuestionContent;
tb.TextWrapping = TextWrapping.WrapWithOverflow;
wrapPanel1.Children.Add(tb);
TextBox tbox = new TextBox();
if (lstQuestion[i].Answer.Trim().Length > 0)
{
tbox.FontSize = 19;
tbox.Width = 100;
tbox.Height = 40;
tbox.PreviewDrop += new DragEventHandler(tbox_PreviewDrop);
tbox.Focusable = false; // Disallow user to input anything into it.
wrapPanel1.Children.Add(tbox);
}
answers.Add(lstQuestion[i].Answer);
if (lstQuestion[i].QuestionNo != lstQuestion[i + 1].QuestionNo)
{
StackPanel sp = new StackPanel();
sp.Width = 1010;
// wrapPanel1.Children.Add(sp);
Label spacing = new Label();
spacing.Width = 1038;
spacing.Content = "";
wrapPanel1.Children.Add(spacing);
}
} // end of for each loop.
}
我不知道什麼是相關的,哪些不是,所以我只是張貼了部分在for循環的謊言。該lstQuestion.Count()
有21項罪名是從數據庫21分的記錄,但我得到這個錯誤:
{"Index was out of range. Must be non-negative and less than the size of the collection.\r\nParameter name: index"}
所以,我想的東西得到了與做for循環,其中我< = lstQuestion.Count()。
我試圖把我< = lstQuestion.Count() - 2,
它的工作原理,但它不顯示最後2個記錄,它會顯示19條記錄,而不是21
如何更改for循環以顯示所有21條記錄?
我不能使用foreach循環,因爲我需要在當前循環中找到下一個循環值。
檢查此行。 'if(lstQuestion [i] .QuestionNo!= lstQuestion [i + 1] .QuestionNo)' 當我達到20時會發生什麼?並且您嘗試將它與第21張唱片進行比較! – Nilesh
順便說一句,當你得到一個異常時,仔細看看堆棧跟蹤,它可能會指出導致問題的線路。 –