c# WCF服务正在复制列表中的数据值<>
本文关键字:数据 列表 服务 WCF 复制 | 更新日期: 2023-09-27 18:12:38
我有一个问题,我做了一个基于WFC的服务,其中我根据数据库的值创建了一个列表。这是我的代码:
public List loadrGenera(){
string dbStr = HostingEnvironment.MapPath(@"~/App_Data/Database2.mdb;");
string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbStr;
OleDbConnection conn = new OleDbConnection(connStr);
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM Genera;", conn);
DataSet ds = new DataSet();
adapter.Fill(ds);
List<Genera> GeneraLis = new List<Genera>();
Genera Generaob = new Genera();
foreach (DataRow dr in ds.Tables[0].Rows)
{
Generaob.name = dr["Name"].ToString();
Generaob.generaId = Convert.ToInt32(dr["GeneraID"].ToString());
GeneraLis.Add(Generaob);
}
return GeneraLis;
}
问题是,当我调用服务时,列表中的所有数据都会重复,例如,如果我有
1-Fiction2-Drama三招
方法将返回
三招三招三招
总是最后一个重复,我不知道我做错了什么,有人能解释一下吗?tnx
您一遍又一遍地编辑Genera的同一个实例。你应该在循环中实例化一个对象:
Genera Generaob;
foreach (DataRow dr in ds.Tables[0].Rows)
{
Generaob = new Genera()
Generaob.name = dr["Name"].ToString();
Generaob.generaId = Convert.ToInt32(dr["GeneraID"].ToString());
GeneraLis.Add(Generaob);
}