c# - 如何在 C# 中使用存储过程和数据读取器返回记录列表
问题描述
我想在 C# 中使用存储过程和数据读取器返回记录列表。目前,它给了我错误
无法将类型“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;
}
解决方案
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;
}
推荐阅读
- asp.net - InvalidOperationException:无法在“ApplicationUser”上配置密钥,因为它是派生类型
- templates - Message模板中如何显示相关节点的图片?
- swift - Clipped Image 在框架外调用 TapAction
- python - 从 pandas 列中提取任何格式的日期(日期是较长字符串的一部分)
- react-native - React Redux 在第一次渲染页面时不更新道具
- c++ - 有效地将字节数组附加到字符串 c++
- google-apps-script - 使用 IMPORTRANGE 同步独立工作表时出错
- python - 为什么我的套接字似乎在客户端关闭,即使我一直从服务器发出客户端应该监听的消息?
- c# - IEnumerable 概念 - 得到所有和得到一个
- c++ - 如何让多个对象共享值?