Lösung:Welches ist eine bessere Lösung? 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
dem man eine bessere Lösung in Bezug auf Leistung und Geschwindigkeit der Ausführung ist ??
UPDATE: Ich speichere die Daten in einem DATATABLE .... und dann mit einem ListView.
Global.DataAccess.GetDataTable' ist eine Funktion, die eine 'DataTable' zurückgibt – user1150440
Die beiden Lösungen sind nicht vergleichbar. In der ersten erhalten Sie eine unpräzise Anzahl von Datensätzen und fügen diese wiederholt zusammen (mehr als ein Semester). In der zweiten erhalten Sie nur die Datensätze für ein bestimmtes Semester (aber das ich Werte sind ein bisschen seltsam). By the way, es ist nicht mit der Frage verbunden, aber dieser Code unterliegt Sql Injection – Steve
@Steve OKay danke ... aber wenn die zweite Lösung war etwas wie diese "Global.DataAccess.GetDataTable (" SELECT SubjectID, SubjectName, Klasse FROM SubjectPI WHERE RegNr = '"& CInt (HttpContext.Current.Session (" Benutzername ")) &"' AND Status = 'Nicht bestanden' AND (Semester = 1 ODER Semester = 2 ODER Semester = 3 ")' 'Hier Ich versuche, die Daten von drei Semestern zusammen zu bekommen ... der SQL-Befehl kann falsch sein, aber ich hoffe, Sie bekommen, was versucht zu erklären ... was ist mit dieser Lösung? – user1150440