列表项到数据库

时间:2013-03-26 12:48:16

标签: c# .net database list generic-list

我有一个清单

List<SalesDetail>  SalesList = new List<SalesDetail>();
SalesDetail detail = new SalesDetail();  

其中“SalesDetail”是一个类。我有一个按钮(添加)和我的代码点击事件的添加按钮是     SalesList.Add(细节); 其中details是SalesDetail类的对象,其中包含{set;并得到;}

但是当我尝试检索列表中的每个项目时,我只得到最后一项。 检索每个项目的代码是

foreach(SalesDetail sd in SalesList)
{

    messageBox.show(SalesList);

}

在我的类SalesDetail中,我有以下代码

Public string Brand{get; set;}
Public string Product{get; set;}

我想从列表中检索每个项目并将其保存到数据库 我想知道在检索数据时我在哪里弄错了.. 请帮忙 问候 bunzitop

3 个答案:

答案 0 :(得分:2)

您需要使用引用sd

中当前项目的SalesList对象

尝试:

foreach(SalesDetail sd in SalesList)
{

    messageBox.show(sd.Brand);
    messageBox.show(sd.Product);

}

来自聊天:

List<SalesDetail> SalesList = new List<SalesDetail>();

public void button1_click() {

    SalesDetail detail = new SalesDetail();
    detail.Brand = textBox1.Text
    detail.Product= textBox2.Text` 
    SalesList.Add(detail);

}

答案 1 :(得分:2)

SalesList是类型。您应该在循环中使用sd(这是变化的值)。

答案 2 :(得分:0)

首先,您的类定义错误,因为您省略了BrandProduct属性的类型,而public可见性修饰符应为小写。

要使用ToString(),您需要覆盖您班级中的方法:

public class SalesDetail
{
    public string Brand {get; set;}
    public string Product {get; set;}

    public override string ToString()
    {
        return string.Format("Brand: {0}, Product {1}", Brand, Product);
    }
}

然后你可以使用Linq来Aggregate列表并显示它的内容。

var items = SalesList.Select(s => s.ToString()).Aggregate((s, s1) => s + Environment.NewLine + s1);
MessageBox.Show(items);