while (Running)
{
while (rdr.Read())
{
List<PackageDetailFile> pkgFiles = rdr.Read().ToString().ToList();
}
}
您好, read() 返回一个包含 7 8 列的内部连接表,是否可以将它们存储在 List 中?如果我们能正确转换 rdr.read(), ( to string to list ... ? )
根据你的PackageDetailFile
类的结构和基础数据,你可以做这样的事情
var packageDetailFiles = new List<PackageDetailFile>();
while (Running)
{
while (rdr.Read())
{
var detailFile = new PackageDetailFile();
// the following will depend on your data structure and class properties
detailFile.Property1 = rdr.GetString(0);
detailFile.Property2 = rdr.GetString(1);
detailFile.Property3 = rdr.GetString(2);
packageDetailFiles.Add(detailFile);
}
}
注意:您可以使用 AutoMapper 之类的程序集从数据读取器映射到 POCO,从而减少繁琐的工作,MyObject.MyProperty = dataReader[collectionIndex]
使您的代码更具可读性和测试友好性。
尝试使用 rdr 对象的 GetValues 方法。我想 rdr 是一个 SqlDataReader 或另一个 DataReader。
此方法返回一个对象数组,其中包含当前行的所有列。在它之后,您可以将对象数组存储在对象列表中。如果要存储在另一种类型的列表中,则必须在存储之前将每个元素转换为正确的类型。