Решение 1:Какой из них является лучшим решением?
Dim i As Integer = CInt(_table.Rows(0).Item(3))
Do While i - 2 > 0
_tableBackLogs.Merge(Global.DataAccess.GetDataTable("SELECT SubjectID,SubjectName,Grade FROM SubjectPI WHERE RegNo='" & CInt(HttpContext.Current.Session("userName")) & "' AND Status='Fail' AND Semester='" & i - 2 & "'"))
i = i - 2
Loop
Solutin 2:
If i = 1 Then
Global.DataAccess.GetDataTable("SELECT SubjectID,SubjectName,Grade FROM SubjectPI WHERE RegNo='" & CInt(HttpContext.Current.Session("userName")) & "' AND Status='Fail' AND Semester='" & i & "'")
ElseIf i = 2 Then
Global.DataAccess.GetDataTable("SELECT SubjectID,SubjectName,Grade FROM SubjectPI WHERE RegNo='" & CInt(HttpContext.Current.Session("userName")) & "' AND Status='Fail' AND Semester='" & i - 2 & "'")
ElseIf i = 3 Then
Global.DataAccess.GetDataTable("SELECT SubjectID,SubjectName,Grade FROM SubjectPI WHERE RegNo='" & CInt(HttpContext.Current.Session("userName")) & "' AND Status='Fail' AND Semester='" & i - 2 & "'")
'On and on....upto i=8
End If
Какой является лучшим решением с точки зрения производительности и скорости выполнения ??
ОБНОВЛЕНИЕ: Я храню данные в DATATABLE .... и затем используя его с ListView.
Global.DataAccess.'GetDataTable' - это функция, которая возвращает 'DataTable' – user1150440
. Эти два решения не сопоставимы. В первом вы получаете неточенную сумму записей и объединяете их повторно вместе (более одного семестра). Во втором вы получаете только записи за указанный семестр (но значения i немного странные). Кстати, это не связано с вопросом, но этот код подлежит Sql Injection – Steve
@Steve OKay спасибо ... но если второе решение было чем-то вроде этого '' Global.DataAccess.GetDataTable («SELECT SubjectID, SubjectName, Класс FROM SubjectPI WHERE RegNo = '' & CInt (HttpContext.Current.Session ("userName")) & "'AND Status =' Fail 'AND (Семестр = 1 ИЛИ Семестр = 2 ИЛИ Семестр = 3") ' ' Здесь Я пытаюсь получить данные из трех семестров вместе ... команда sql может быть неправильной, но я надеюсь, что вы получите то, что пытаетесь объяснить ... как насчет этого решения? – user1150440