如何在C#中使用存储过程和datareader返回记录列表

问题描述 投票:-1回答:1

我想在C#中使用存储过程和datareader返回记录列表。目前,它给了我错误

无法将类型'ClsHorseTracker'隐式转换为'System.Collections.Generic.List'

码:

public List<ClsHorseTracker> HorseTrackerList()
{
    clsUtilities clsUtilities = new clsUtilities();
    DataSet ds;
    List<ClsHorseTracker> clsHorseTracker = new List<ClsHorseTracker>();

    string sSQL = "exec HorseDetails";
    ds = clsUtilities.GetDataSet(sSQL);

    SqlCommand cmd = new SqlCommand();

    using (SqlDataReader reader = cmd.ExecuteReader())
    {
        if (reader.HasRows)
        {
            while (reader.Read())
            {
                clsHorseTracker = new ClsHorseTracker
                    {
                        HorseName = Convert.ToString(reader["HorseName"]),
                        HorseTypeName = Convert.ToString(reader["HorseTypeName"]),
                    };
            }
        }
    }

    return clsHorseTracker;
}
c# sql-server ado.net datareader
1个回答
1
投票

clsHorseTracker是ClsHorseTracker的列表。因此,您需要在“while”循环中将新对象添加到列表中,而不是将对象分配给列表尝试此操作

public List<ClsHorseTracker> HorseTrackerList()
        {
         clsUtilities clsUtilities = new clsUtilities();
           DataSet ds;
           List<ClsHorseTracker> clsHorseTracker = new List<ClsHorseTracker>();

            string sSQL;
            sSQL = "exec HorseDetails";
            ds = clsUtilities.GetDataSet(sSQL);

            SqlCommand cmd = new SqlCommand();

            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        clsHorseTracker.Add(new ClsHorseTracker
                        {

                            HorseName = Convert.ToString(reader["HorseName"]),
                            HorseTypeName = Convert.ToString(reader["HorseTypeName"]),

                        });
                    }
                }


            }


            return clsHorseTracker;
        }
© www.soinside.com 2019 - 2024. All rights reserved.