【发布时间】:2016-02-02 03:31:12
【问题描述】:
Public Class Functions
Inherits BaseClass
Public Function KesDetails(KesID As Integer) As KesH
Dim Sql As New SqlClass
Dim lRd As DataTableReader
Sql.OpenConnection()
Sql.lCmd.CommandText = " SELECT"
Sql.lCmd.CommandText &= " Case WHEN KAHStatus = 'M' THEN 'LULUS' ELSE cast(DATEDIFF(Day, KAHCreatedOn, GetDate()) as varchar(10)) END As DayCount"
Sql.lCmd.CommandText &= " ,KAHID,KAH_AKJID,KAHCreatedBy,KAHCreatedOn"
Sql.lCmd.CommandText &= " ,KAHLokasi,KAHHirarki,KAHPenjaga,KAHBertanggungjawab,KAHInden,KAHMelulus,KAH_KAJID,KAJNAMA,G.FPNoTender,G.FPNoKontrak,G.FPTajukProjek,G.FPKontrakNamaSyarikat,KAHUpdatedOn"
Sql.lCmd.CommandText &= " FROM HartaMajlis..KejuruteraanArahanH A "
Sql.lCmd.CommandText &= " LEFT JOIN HartaMajlis..KejuruteraanArahanProd B ON A.KAH_KAPID=B.KAPID"
Sql.lCmd.CommandText &= " LEFT JOIN HartaMajlis..AduanKejuruteraan C ON A.KAH_AKJID=C.AKJProjekID"
Sql.lCmd.CommandText &= " LEFT JOIN hartamajlis..hartabangunan D ON C.AKJ_ITEMID = D.HTBgnID"
Sql.lCmd.CommandText &= " LEFT JOIN hartamajlis..KejuruteraanArahanJenis E ON A.KAH_KAJID = E.KAJID"
Sql.lCmd.CommandText &= " LEFT JOIN hartamajlis..KejuruteraanArahanHirarki F ON A.KAHHirarki = F.KAHHID"
Sql.lCmd.CommandText &= " LEFT JOIN hartamajlis..FailProjek G ON F.KAHH_FKJTenderNo = G.FPNoTender"
Sql.lCmd.CommandText &= " WHERE A.KAHDeleted<>'Y'"
Sql.lCmd.CommandText &= " AND A.KAHID = " & KesID
Sql.lCmd.CommandText &= " ORDER BY A.KAHUpdatedON DESC"
lRd = Sql.QueryData().CreateDataReader
Dim lsData As New KesH
If lRd.Read() Then
'lsData.DayCount = Convert.ToString(lRd("DayCount"))
'lsData.KAHID = Convert.ToInt32(lRd("KAHID"))
'lsData.KAH_AKJID = Convert.ToString(lRd("KAH_AKJID"))
'lsData.KAHCreatedOn = Convert.ToString(lRd("KAHCreatedOn"))
'lsData.KAHLokasi = Convert.ToString(lRd("KAHLokasi"))
'lsData.KAHCreatedBy = Convert.ToString(lRd("KAHCreatedBy"))
'lsData.KAHLokasi = Convert.ToString(lRd("KAHLokasi"))
'lsData.KAHHirarki = Convert.ToString(lRd("KAHHirarki"))
'lsData.KAHPenjaga = Convert.ToString(lRd("KAHPenjaga"))
'lsData.KAHBertanggungjawab = Convert.ToString(lRd("KAHBertanggungjawab"))
'lsData.KAHInden = Convert.ToString(lRd("KAHInden"))
'lsData.KAHMelulus = Convert.ToString(lRd("KAHMelulus"))
'lsData.KAH_KAJID = Convert.ToString(lRd("KAH_KAJID"))
'lsData.KAJNAMA = Convert.ToString(lRd("KAJNAMA"))
'lsData.FPKontrakNamaSyarikat = Convert.ToString(lRd("FPKontrakNamaSyarikat"))
'lsData.FPNoKontrak = Convert.ToString(lRd("FPNoKontrak"))
'lsData.FPNoTender = Convert.ToString(lRd("FPNoTender"))
'lsData.KAHUpdatedOn = Convert.ToDateTime(lRd("KAHUpdatedOn"))
Dim properties As PropertyInfo() = GetType(KesH).GetProperties()
For Each Names As PropertyInfo In properties
If Names.PropertyType = GetType(String) Or Names.PropertyType = GetType(Integer) Or Names.PropertyType = GetType(DateTime) Then
MsgBox(Names.Name & Names.PropertyType.ToString)
lsData.(Names.Name) = lRd(Names.Name)
End If
Next
End If
Sql.CloseConnection()
Return lsData
End Function
End Class
我没有键入和声明变量并一一分配 lrd(...),而是创建了一个循环函数来分配,但是缺少的另一件事是使用 name.Names 的输出声明 lsData ,任何想法我该如何解决这个问题,已经 5 个小时了,我尝试解决这个问题并一遍又一遍地挠头直到流血,或者是否有任何其他方式/方法可以在不声明和分配 lrd(...) 的情况下循环此问题。非常感谢你们。
【问题讨论】:
标签: vb.net model-view-controller sqldatareader sqlconnection