返回项目列表

时间:2014-04-15 18:56:40

标签: c# asp.net list c#-4.0

我正从数据库中检索多条记录并将其存储在列表中。我创建了属性类,然后我将检索到的数据分配给属性中的变量,然后尝试将所有值集合返回给进行函数调用的客户端,但它不起作用。为什么?请说明一点。

代码:

 public Properties FetchCoordinates(String FetchParam) 
    {
        String[] parts = FetchParam.Split(',');
        sqlCom.CommandText = "FetchCoordinates";
        sqlCom.CommandType = CommandType.StoredProcedure;

        sqlCom.Parameters.Add("@IMEI", SqlDbType.VarChar).Value = parts[0].ToString();
        sqlCom.Parameters.Add("@DateTimeFrom", SqlDbType.VarChar).Value = Convert.ToDateTime(parts[1].ToString());
        sqlCom.Parameters.Add("@DateTimeTo", SqlDbType.VarChar).Value = Convert.ToDateTime(parts[2].ToString());
        SqlParameter sqlParam = new SqlParameter("@result", SqlDbType.Int);
        sqlCom.Parameters.Add(sqlParam);
        sqlCom.Parameters["@result"].Direction = ParameterDirection.Output;
        List<Properties> props = new List<Properties>();
        Properties p;

        try
        {
            sqlCon.Open();
            using (SqlDataReader reader = sqlCom.ExecuteReader())
{
            while (reader.Read())
            {
                p = new Properties()
                {
                    Longitude = reader["Longitude"].ToString(),
                    Latitude  = reader["Latitude"].ToString()
                };
                props.Add(p);
                return p;
            }

}



        }



        catch (Exception ex)
        {



        }

        finally
        {
            sqlCon.Close();
        }

    }

}

Properties.cs

public class Properties
{
    public Properties()
    {
    }

    public string Longitude { get; set; }
    public string Latitude { get; set; }

}

1 个答案:

答案 0 :(得分:4)

更改方法签名;

public List<Properties> FetchCoordinates(String FetchParam) 

而不是只返回p只是一个实例,返回List props;

 while (reader.Read())
            {
                p = new Properties()
                {
                    Longitude = reader["Longitude"].ToString(),
                    Latitude  = reader["Latitude"].ToString()
                };
                props.Add(p);

            }

 return props;