//1.连接到SQL数据库里
public newEmployees[] GetInfo()
{
SqlConnection sql = new SqlConnection();
sql.ConnectionString = ConfigurationManager.ConnectionStrings["TeseConnectionString"].ToString();
sql.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand("select * from Employee", sql);
DataSet ds = new DataSet();
da.Fill(ds);
List<newEmployees> em = null;
foreach (DataRow dr in ds.Tables[0].Rows)//本想让em得到ds.Tables[0].Rows所有记录。但由于em=new List<newEmployees>导致最后每次循环都new 了一下,最后的结果也就只有一个了。我应该怎么改??
{
em = new List<newEmployees>()
{ new newEmployees{EmployeeID=dr[0].ToString(),EmployeeAge=dr[1].ToString(),EmployeeName=dr[2].ToString()}};
} return em.ToArray();
}
放foreach上面不行吗?
在foreach外面new好以后,在foreach里面直接调用add方法不可以吗?
em = new List<newEmployees>();
foreach (DataRow dr in ds.Tables[0].Rows)//本想让em得到ds.Tables[0].Rows所有记录。但由于em=new List<newEmployees>导致最后每次循环都new 了一下,最后的结果也就只有一个了。我应该怎么改??
{
{ em.Add( newEmployees{EmployeeID=dr[0].ToString(),EmployeeAge=dr[1].ToString(),EmployeeName=dr[2].ToString());
}
foreach (DataRow dr in ds.Tables[0].Rows
{
newEmployees nem= new newEmployees{EmployeeID=dr[0].ToString(),EmployeeAge=dr[1].ToString(),EmployeeName=dr[2].ToString()}};
em.Add(nem);
}
return em.ToArray();
你既然都知道问题了,那就把实例化的部分放到foreach外面不就可以了吗~