2014-01-19 2 views
-1

나는 VB에서 MSSQL에서 ASP.NET으로 쉽게 바인딩하려고합니다. 이 같은 일을하고 싶습니다 ...바인딩 문자열 이름을 사용하여 문자열에서

Public Class Address 
    Public Shared name As String 
    Public Shared address1 As String 
    Public Shared address2 As String 
    Public Shared city As String 
    Public Shared state As String 
    Public Shared phone As String 
    Public Shared email As String 
End Class 

와 나는 COL 등으로부터 이러한 변수를로드 할. MSSQL 의 이름 그래서 뭔가 같은 ...

for i = 0 to reader.fieldcount -1 
address.(reader.getname(i)) = reader(i) 
next 

어떻게 VB 또는 C#에서이 같은 일을 할 것인가?

답변

1

는 다음과 같이 반사에 의존해야 :

Type type = address.GetType(); 

for (int i=0; i < reader.FieldCount; i++) 
{ 
    var property = type.GetProperty(reader.GetName(i)); 

    var setMethod = property.GetSetMethod(); 

    setMethod.Invoke(address, new object[]{reader[i]}); 
} 
+0

또한 특정 vars 대신 사전 var를 사용하여이 문제를 해결했습니다. – Ishey4

1

내가 나를 위해 이렇게 Dapper 같은 경량 ORM을 사용합니다. 그것은 당신에게 1 톤의 시간을 절약 할 수있는 약간의 마법입니다. CRUD 작업을위한 다양한 Dapper 확장도 있습니다.

관련 문제