填充一个具有另一个类作为属性的类

纳耶夫·哈伯

我在Windows窗体应用程序中有两个类。比方说StudentStudentDetails在哪里,该类StudentDetails也是的属性Student

我有一个存储过程,该过程从数据库的两个表中获取数据。我需要知道通常如何处理这种情况,这意味着通常如何填充学生班级。非常感谢你的回答。与类似情况的任何链接都很棒。

这是我的代码:

 class Student
    {
        public int StudentID { get; set; }
        public string StudentName { get; set; }
        public StudentDetails StudentDetails { get; set; }

        public Student()
        {
            this.StudentID = 0;
            this.StudentName = String.Empty;
            this.StudentDetails = new StudentDetails();
        }

    }

class StudentDetails
    {

        public int StudentDetailsID { get; set; }
        public string Address { get; set; }
        public int Height { get; set; }
        public int Weight { get; set; }

        public StudentDetails()
        {
            this.StudentDetailsID = 0;
            this.Address = String.Empty;
            this.Height = 0;
            this.Weight = 0;

        }

    }

下面的类具有填充学生类的函数(FillStudent()

 Class StudentAssembler
        {

            public List<Model.Student> FillStudent()
            {
                List<Model.Student> StudentCollection = new List<Model.Student>();
                Model.Student StudentDTO = new Model.Student();
                try
                {
                    using (Model.dbConnection dbconnection = new Model.dbConnection(Utilities.SqlConnStr))
                    {

                        SqlDataReader dr;
                        SqlCommand command = new SqlCommand("GetStudents", dbconnection.connection);
                        command.CommandType = CommandType.StoredProcedure;
                        dbconnection.OpenConn();
                        dr = command.ExecuteReader();
                        while (dr.Read())
                        {
                            StudentDTO.StudentID = dr[0] == DBNull.Value ? 0 : (int)dr[0];
                            StudentDTO.StudentName = dr[1] == DBNull.Value ? String.Empty : (String)dr[1];

//this is the part that i need to know how is it usually handled

//StudentDTO.StudentDetails = how to fill out this part ???
                                StudentCollection.Add(StudentDTO);
                            }

                            return StudentCollection;
                        }
                    }
                    catch (Exception)
                    {
                        return null;
                    }
                }
            }

编辑:

存储过程代码

select s.StudentID,s.StudentName,sd.StudentDetailsID,sd.Address,
sd.Height,sd.Weight
from Student s,StudentDetails sd
where s.StudentID = sd.StudentID
伊万

你有两个选择

1:一个单独的sproc(或sql),以按StudentID从学生详细信息表中获取信息。每个学生都称这个

2:在您的sproc / sql中加入学生详细信息表,并使用相同的数据行填充两者

选择1:通常更清洁,更可重用。我想说这应该是您的第一种方法。

但是,如果您需要找很多学生,则选项2会快得多。因为它只需要对数据库的一个调用。

另外,您似乎与学生和studendetails之间是1:1的关系,因此没有理由不使用选项2。但是,如果您对一位学生有很多详细信息,您仍然可以使用选项2,跳过重复的学生信息。即使您返回的数据比sql所需的数据多,这通常也是最好的方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有来自另一个类的属性的严格子集的Typescript类

来自分类Dev

在类中声明属性,该类在C ++中具有另一个类型

来自分类Dev

在另一个IEnumerable中具有IEnumerable属性的类

来自分类Dev

访问另一个类的类级别属性?

来自分类Dev

将类用作另一个类的属性

来自分类Dev

PHP 扩展一个类并使用具有相同基类的另一个类

来自分类Dev

C++/ 类实例向量作为另一个类的属性

来自分类Dev

将 1 个类转换为具有相同字段的另一个类

来自分类Dev

用另一个类的ArrayList填充JComboBox

来自分类Dev

用另一个类的ArrayList填充JComboBox

来自分类Dev

在另一个类中填充对象

来自分类Dev

在另一个类的构造函数中使用一个类作为参数

来自分类Dev

使用id作为参数从另一个类访问一个类

来自分类Dev

创建一个类实例作为另一个类的成员

来自分类Dev

一个类具有另一个类的实例的JVM初始化顺序是什么

来自分类Dev

将rand变量从一个类传递到另一个具有相同值的类

来自分类Dev

将具有依赖项属性的值从一个类绑定到wpf中的另一个类文本框控件

来自分类Dev

在另一个类中引用一个类的属性?

来自分类Dev

Objective-C:在另一个类中调用一个类的属性

来自分类Dev

在另一个类中使用一个类的属性

来自分类Dev

将一个案例类转换为具有相同结构但具有一个附加字段的另一个案例类

来自分类Dev

C#抽象类具有另一个抽象类对象

来自分类Dev

如果元素具有类,则将类添加到另一个元素

来自分类Dev

从另一个类描述一个类的所有现有元素

来自分类Dev

获取类的“所有者”,如果它是另一个类的属性

来自分类Dev

C#属性只能在具有另一个属性的类中的方法上

来自分类Dev

使用另一个类的instance属性。Python

来自分类Dev

如何从另一个类更改按钮的属性?

来自分类Dev

类的重载另一个类属性的类型

Related 相关文章

  1. 1

    具有来自另一个类的属性的严格子集的Typescript类

  2. 2

    在类中声明属性,该类在C ++中具有另一个类型

  3. 3

    在另一个IEnumerable中具有IEnumerable属性的类

  4. 4

    访问另一个类的类级别属性?

  5. 5

    将类用作另一个类的属性

  6. 6

    PHP 扩展一个类并使用具有相同基类的另一个类

  7. 7

    C++/ 类实例向量作为另一个类的属性

  8. 8

    将 1 个类转换为具有相同字段的另一个类

  9. 9

    用另一个类的ArrayList填充JComboBox

  10. 10

    用另一个类的ArrayList填充JComboBox

  11. 11

    在另一个类中填充对象

  12. 12

    在另一个类的构造函数中使用一个类作为参数

  13. 13

    使用id作为参数从另一个类访问一个类

  14. 14

    创建一个类实例作为另一个类的成员

  15. 15

    一个类具有另一个类的实例的JVM初始化顺序是什么

  16. 16

    将rand变量从一个类传递到另一个具有相同值的类

  17. 17

    将具有依赖项属性的值从一个类绑定到wpf中的另一个类文本框控件

  18. 18

    在另一个类中引用一个类的属性?

  19. 19

    Objective-C:在另一个类中调用一个类的属性

  20. 20

    在另一个类中使用一个类的属性

  21. 21

    将一个案例类转换为具有相同结构但具有一个附加字段的另一个案例类

  22. 22

    C#抽象类具有另一个抽象类对象

  23. 23

    如果元素具有类,则将类添加到另一个元素

  24. 24

    从另一个类描述一个类的所有现有元素

  25. 25

    获取类的“所有者”,如果它是另一个类的属性

  26. 26

    C#属性只能在具有另一个属性的类中的方法上

  27. 27

    使用另一个类的instance属性。Python

  28. 28

    如何从另一个类更改按钮的属性?

  29. 29

    类的重载另一个类属性的类型

热门标签

归档