程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ADO.NET - 动态循环遍历 SqlDataReader 列并将这些值分配给 C# Object大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决ADO.NET - 动态循环遍历 SqlDataReader 列并将这些值分配给 C# Object?

开发过程中遇到ADO.NET - 动态循环遍历 SqlDataReader 列并将这些值分配给 C# Object的问题如何解决?下面主要结合日常开发的经验,给出你关于ADO.NET - 动态循环遍历 SqlDataReader 列并将这些值分配给 C# Object的解决方法建议,希望对你解决ADO.NET - 动态循环遍历 SqlDataReader 列并将这些值分配给 C# Object有所启发或帮助;

我有一个应用程序,学生可以使用该应用程序选择他们希望加入的大学,在该应用程序中,我们目前提供最多选择 3 所大学的选项,我们说第一首选、第二首选和第三首选,我们有一个存储过程返回的数据和结果集的列如下。

 UserID | Firstname | Lastname | Email | Mobile | City |
 FirstPreferredCollegEID | FirstPreferredCollegename |
 FirstPreferredCollegeGrade | FirstPreferredCollegePincode |
 SecondPreferredCollegEID | SecondPreferredCollegename |
 SecondPreferredCollegeGrade | SecondPreferredCollegePincode |
 ThirdPreferredCollegEID | ThirdPreferredCollegename |
 ThirdPreferredCollegeGrade | ThirdPreferredCollegePincode |

如果我们查看上面的结果集 UserID、Firstname、Lastname、Email、Mobile、City 是唯一的,其中 PreferredCollegEID、PreferredCollegename、PreferredCollegeGrade、PreferredCollegePinCode 重复三次。

我的 c# 模型如下所示。

Public Class User
{
    Public int UserID {get;set;}
    Public String Firstname {get;set;}
    public String Lastname {get;set;}
    public String Email {get;set;}
    public String Mobile {get;set;}
    public String City {get;set;}
    public List<Choice> Choices {get;set;}
}

public class Choice
{
    public String PreferredCollegEID {get;set;}
    public String PreferredCollegename {get;set;}
    public String PreferredCollegeGrade {get;set;}
    public String PreferredCollegePincode {get;set;}
}

现在 ADO.NET 代码如下所示,reader 是 sqlDataReader 对象。

 objUser.UserID = (String)reader["UserID"];
 objUser.Firstname = (String)reader["Firstname"];
 objUser.Lastname = (String)reader["Lastname"];
 objUser.Email = (String)reader["Email"];
 objUser.Mobile = (String)reader["Mobile"];
 objUser.City = (String)reader["City"];

 /* Here I need to loop through reader and get College details
 Choice ch = new Choice();

现在我需要遍历 sqlDataReader 并获取 PreferredCollegEID、PreferredCollegename、PreferredCollegeGrade、PreferredCollegePincode 并动态创建 Choice 类的对象并将这些值绑定到 Choice 对象 - 我该如何实现

>

解决方法

尝试这样的事情:

var prefixes = new List<String> {"First","Second","Third"};
objUser.Choices = new List<Choice>();
foreach(var prefix in prefixes) 
{
   objUser.Choices.Add(new Choice {
       PreferredCollegEID= (String) reader[prefix + "PreferredCollegEID"],PreferredCollegename = (String) reader[prefix + "PreferredCollegename"],PreferredCollegeGrade  = (String) reader[prefix + "PreferredCollegeGrade"],PreferredCollegePincode  = (String) reader[prefix + "PreferredCollegePincode"]
   });
}

大佬总结

以上是大佬教程为你收集整理的ADO.NET - 动态循环遍历 SqlDataReader 列并将这些值分配给 C# Object全部内容,希望文章能够帮你解决ADO.NET - 动态循环遍历 SqlDataReader 列并将这些值分配给 C# Object所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:-