ASP.NET-如何使用存储过程将列表集合保存到数据库?

ASP.NET-如何使用存储过程将列表集合保存到数据库?,asp.net,list,collections,Asp.net,List,Collections,我有一个列表集合: List<Person> people = new List<Person>(); Person p1 = new Person(); p1.FirstName = "Nikos"; p1.LastName = "Kantzelis"; p1.Email = "nikolaosk@hotmail.com"; p1.Height = 1.78m; p1.Weight = 88.5m; Pe

我有一个列表集合:

 List<Person> people = new List<Person>();

    Person p1 = new Person();

    p1.FirstName = "Nikos";
    p1.LastName = "Kantzelis";
    p1.Email = "nikolaosk@hotmail.com";
    p1.Height = 1.78m;
    p1.Weight = 88.5m;


    Person p2 = new Person();

    p2.FirstName = "James";
    p2.LastName = "Rowling";
    p2.Email = "jamesr@hotmail.com";
    p2.Height = 1.98m;
    p2.Weight = 98.25m;

    Person p3 = new Person();

    p3.FirstName = "George";
    p3.LastName = "Graham";
    p3.Email = "graham@yahoo.co.uk";
    p3.Height = 1.88m;
    p3.Weight = 81.5m;

    people.Add(p1);
    people.Add(p2);
    people.Add(p3);
List people=newlist();
人员p1=新人员();
p1.FirstName=“尼科斯”;
p1.LastName=“Kantzelis”;
p1.电子邮件=”nikolaosk@hotmail.com";
p1.高度=1.78米;
p1.重量=88.5m;
人员p2=新人员();
p2.FirstName=“詹姆斯”;
p2.LastName=“罗琳”;
p2.电子邮件=”jamesr@hotmail.com";
p2.高度=1.98米;
p2.重量=98.25m;
人员p3=新人员();
p3.FirstName=“乔治”;
p3.LastName=“格雷厄姆”;
p3.电子邮件=”graham@yahoo.co.uk";
p3.高度=1.88米;
p3.重量=81.5m;
人员。添加(p1);
新增(p2);
新增(p3);
现在,我想使用存储过程将此列表集合中的值保存到数据库中的一些表中

请告知

问候,,
Pawan

我不确定您是否在寻找更时尚的产品,但您可以这样做:

foreach (Person person in people)
{
    //example code
    //save each person in the list to the database
    SavePerson(person.Name, person.Age, ...); 
}
//example code
//save each person in the list to the database
people.ForEach(person => SavePerson(person.Name, person.Age, ...));
如果您愿意,也可以使用LINQ这样做:

foreach (Person person in people)
{
    //example code
    //save each person in the list to the database
    SavePerson(person.Name, person.Age, ...); 
}
//example code
//save each person in the list to the database
people.ForEach(person => SavePerson(person.Name, person.Age, ...));
如果您的DB是SQL 2005(或是2008)及以上版本,则可以将对象列表序列化为XML,然后将整个XML blob传递给参数中的SP,然后使用MSSQL的XML查询功能解析XML并将数据插入表中

类似于插入Person SELECT*FROM XML的


这将允许单个SP调用,并且可以将其包装在SP内的事务中(而不是跨越流程边界)。

您使用的是什么数据库?什么样的数据访问技术?我认为这是最好的方法。实际上,没有一种干净的方法可以将整个列表发送到DB服务器并让DB服务器迭代列表。谢谢您的回复。这看起来是个好办法。但如果我在人员列表中有100人的信息,这将导致100个呼叫DB。这样做好吗?另外,是否有任何方法可以将people对象序列化为XML,并使用某些存储过程将该XML发送到DB。如果有任何这样的方式来发送XML,这被认为是一种好方法吗?谢谢,帕瓦尼每次我看到一个精选的*我想尖叫并烧毁建筑物。