Я хочу идентифицировать свойства конкретного объекта, который он получает при вызове метода, и помещать в него значения из результата БД, который я получил.Я искал об этом, но в настоящее время я застрял в том, как я должен идти отсюда.Вот мой код ..
Public Class DBModel
Public Sub getFromDB(ByRef lists As List(Of Object), ByVal classType As Type, ByVal tblName as String)
Dim strSql As String = "SELECT * FROM " & tblName
Dim props = classType.GetProperties()
Try
Using cnn As New SqlConnection("Data Source = .\; Initial Catalog = DBName;" & "Integrated Security = True;")
Using cmd As New SqlCommand(strSql, cnn)
cnn.Open()
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read
For Each prop In props
For i As Integer = 0 To dr.VisibleFieldCount - 1
prop = dr.GetValue(i)
Next
Next
lists.Add(props)
End While
End Using
End Using
End Using
Catch e As Exception
MessageBox.Show(e.ToString())
End Try
End Sub
End Class
Я вызываю здесь метод getFromDB, чтобы заполнить список клиентов в этом классе, но я также вызову метод getFromDB из других классов другимдругой набор свойств ..
Public Class CustomerCtrler
private _CustomerList As New List(Of Customer)
Public Sub New()
Dim dbModel As New DBModel
Dim cust As New Customer
dbModel.getFromDB(_CustomerList, cust.GetType, "CustTbl")
End sub
End Class
Public Class Customer
Public Property custID As Integer
Public Property FirstName As String
Public Property LastName As String
Public Property DateRegistered As DateTime
End Class
Но я получил InvalidCastException, поэтому я искал о преобразовании типов данных, но я получил: «Тип значения Integer нельзя преобразовать вPropertyInfo "в строке 'prop = dr.GetValue (i)" ..
Я довольно новичок в объектно-ориентированном программировании, поэтому извините, если там много ошибок, но ваша помощь будет действительноцениться ..