数据库中的foreach记录显示在用户控件c#中

时间:2014-11-21 08:45:35

标签: c# html asp.net xml

我正在尝试将数据从数据库显示到我创建的用户控件,该控件由TexBoxes和按钮组成。到目前为止,我能够从数据库中提取数据并在我的用户控件上显示它,但它只显示最后一条记录,所以只有一条记录,尽管我知道还有另一条记录存在。我希望它显示多个用户控件,数据量(记录)在数据库中。

<%
List<ActionGame> actionGame = GameService.GetItems(id);

    foreach (ActionGame GameItem in actionGame)
    {
        textBox1.Text = GameItem.Name;
        textBox2.Text = GameItem.Type;
        textBox3.Text = GameItem.Price;    
    } 
    %>

就像有一种方法我可以多次使用用户控件或任何其他方式我可以在用户控件中显示我的数据库中的所有记录

3 个答案:

答案 0 :(得分:2)

考虑使用ListBox
您正在做的是,您始终使用最后接收的数据更新TextBox的Text属性 - 覆盖之前记录的先前数据。

答案 1 :(得分:1)

是的,这是可能的,但是使用文本框似乎有点尴尬。

您可以在循环的每次迭代中附加到每个文本框而不是覆盖:

// Note: Clear the contents of each textbox before reaching this point 
foreach (ActionGame GameItem in actionGame)
{
    textBox1.Text += GameItem.Name + Environment.NewLine;
    textBox2.Text += GameItem.Type + Environment.NewLine;
    textBox3.Text += GameItem.Price + Environment.NewLine;    
} 

......但我想这可能会给人一种混乱的结果。

我认为某种列表视图会更适合您的目的。

提示:请参阅the documentation for ListView,然后搜索一些符合您需求的示例。

另一种选择是使用Repeater。这应该允许您动态创建所需数量的文本框(example of usage)。

答案 2 :(得分:0)

对于来自数据库的正常选择,Datagridview非常受欢迎,因为显示的数据形式与数据库工作台中的完全相同。您正在做的是替换列表中每个项目的文本框中的文本。