Hallo,
ich habe ein Verständnisproblem.
Ich habe diese Funktion
Wenn ich die Funktion so aufrufe bekomme ich wie erwartet einen Datensatz in der Tabelle.
Der SQL Code aus Zeile 15 sieht so aus:
Der Aufruf CurrentProjectTable(1, ClsToDoDB.TaskVisible.finished) ergibt eine leere Tabelle.
Wenn ich den SQL-Code (aus Zeile 15) direkt in Access ausführe erhalte ich eine Tabelle.
Warum bekomme ich im zweiten Fall kein Ergebnis in VB?
ich habe ein Verständnisproblem.
Ich habe diese Funktion
VB.NET-Quellcode
- Public Function CurrentProjectTable(tblProjectID As Long, Optional visible As TaskVisible = TaskVisible.open) As DataTable
- Dim strVisible As String = ""
- If visible > TaskVisible.all Then
- strVisible = " AND t.finished = @finished"
- End If
- Dim sql As String = baseSQL & " AND t.tblProjectID = @tblProjectID" & strVisible
- Dim dt As New DataTable
- Using conn As New OleDbConnection(connString)
- Dim comm As New OleDbCommand(sql, conn)
- If visible > TaskVisible.all Then
- comm.Parameters.Add("@finished", OleDbType.Boolean).Value = IIf(visible = TaskVisible.open, False, True)
- End If
- comm.Parameters.Add("@tblProjectID", OleDbType.Integer).Value = tblProjectID
- Debug.Print(GetFullCommandSQL(comm))
- Using da As New OleDbDataAdapter()
- da.SelectCommand = comm
- da.Fill(dt)
- End Using
- End Using
- Return dt
- End Function
Wenn ich die Funktion so aufrufe bekomme ich wie erwartet einen Datensatz in der Tabelle.
Der SQL Code aus Zeile 15 sieht so aus:
SQL-Abfrage
- SELECT t.tblToDoID, t.DayDate, t.Task, t.DueDate, t.finished, t.FinishDate, t.PriorityID, u.Username, p.Project, t.tblProjectID, t.tblUserID
- FROM tblToDo as t, tblUser as u, tblProject as p
- WHERE t.tblUserID = u.tblUserID AND t.tblProjectID = p.tblProjectID AND t.Actual = True AND t.tblProjectID = 1
Der Aufruf CurrentProjectTable(1, ClsToDoDB.TaskVisible.finished) ergibt eine leere Tabelle.
Wenn ich den SQL-Code (aus Zeile 15) direkt in Access ausführe erhalte ich eine Tabelle.
SQL-Abfrage
- SELECT t.tblToDoID, t.DayDate, t.Task, t.DueDate, t.finished, t.FinishDate, t.PriorityID, u.Username, p.Project, t.tblProjectID, t.tblUserID
- FROM tblToDo as t, tblUser as u, tblProject as p
- WHERE t.tblUserID = u.tblUserID AND t.tblProjectID = p.tblProjectID AND t.Actual = True AND t.tblProjectID = 1 AND t.finished = True
Warum bekomme ich im zweiten Fall kein Ergebnis in VB?
NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „INOPIAE“ ()