2011-03-13 3 views
1

Я ищу, чтобы заполнить объект, а затем отобразить данные на этикетках.Заполнение объекта данными VB.net

Я создал студенческий класс:

Public Class student 
    Public Dim sNum As Integer 
    Public sName As String 
    Public Sub New(ByVal sNum As Integer) 
     MyBase.New() 
     Me.sNum = sNum 
    End Sub 

У меня есть класс базы данных, которую я хочу использовать для заполнения этого.

Public Function populateStudent() As Object 
     Dim ObjStudent As New student(1) 
     ObjStudent.sName = "Bitz" 
     Return ObjStudent 
    End Function 

Очевидно, что это всего лишь один шаг, в конце концов я буду запрашивать базу данных для заполнения данных, но я хочу, чтобы получить эту работу первый, так что я знаю, что я правильно создать это.

В моем основном классе привязан к своему .aspx Я хочу быть в состоянии сделать

lblStudentName.Text = ObjStudent.sName 

я буду об этом правильно, или есть способ лучше?

ответ

1

Вам не нужно иметь

MyBase.New() 

, потому что у вас нет явного базового класса.

Тип возврата populateStudent() Объекта не имеет особого смысла; это должен быть либо список учеников, если вы планируете вернуть коллекцию ученика после запроса db. если вы планируете заполнять представление из этого самого метода, тогда это должно быть Sub, ничего не возвращающее, а не Function.

В противном случае все остальное выглядит нормально.

EDIT: Похоже, вам нужно что-то вроде этого.

Public Function populateStudent(Id as String) As student 
     Dim ObjStudent As New student(1) 
     ObjStudent.sName = "Bitz" 
     Return ObjStudent 
    End Function 
+0

+1 Я даже не заметил этого :) – David

+0

Я хочу передать номер студента в функцию, которая будет использоваться для запроса db для данных этого конкретного ученика. Таким образом, он вернет все данные для этого человека. Я предполагаю, что это должен быть список учеников. Что я должен искать, чтобы узнать, как это сделать? Спасибо –

+0

> потому что у вас нет базового класса. Не согласен! Каждый .net class - это подкласс класса System.Object. – adatapost

0

Закрыть. Вы хотите установить .Text свойство на Label управления:

lblStudentName.Text = ObjStudent.sName 

(который вы так отредактировали вопрос содержит ... это часто беспокоит меня, что ТАК не показывает, что что-то было отредактировано, если редактирование очень скоро после первоначального сообщения)

Что касается «лучшего способа», просто помните, что существует множество способов сделать что угодно. «Лучше» очень относительный и зависит от других факторов, отсутствующих в коде, который у вас есть. На данный момент у вас есть метод, который возвращает экземпляр объекта (аналогично Factory pattern, не стесняйтесь исследовать его и другие шаблоны), и вы используете свойства этого объекта для заполнения полей данных в пользовательском интерфейсе. Довольно просто, ничего плохого в этом.

Поскольку система растет, а проблемная область становится более сложной, будет больше определений «хороший дизайн» и «плохой дизайн». Но только начинать, это прекрасно.

+0

Спасибо, Дэвид, Извините, о редактировании. Заметил это, когда я читал над ним :( –

Смежные вопросы