Moin!
ich habe vor längerer Zeit eine Anwendung geschrieben bei der Daten aus einer SQLite-Datei gelesen werden.
Nun habe ich in den Datentabellen ein Feld durch ein anderes ersetzt - das ist nicht weiter kritisch, da dieses nur in dem Where-Statement zum Tragen kommt.
Wenn ich den zugehörigen SQL-Ausdruck ausführe, dann werden alle drei gewünschten Spalten Mail, Surname und Firstname DB Browser for SQLite angezeigt.
Bin ich nun im Code, dann bekomme ich für die Zeile, die Mail ausliest folgende Fehlermeldung ausgeworfen:
Hier der zugehörige Code:
Spoiler anzeigen
Hat einer von Euch eine Idee warum es zu dem Fehler kommen könnte?
Habe jetzt nochmal ein Try-Catch um die E-Mail gelegt - da kommt aber nichts.
Was mich nur verwundert ist die Tatsache, dass Mail wohl ein NULL liefert obwohl in dem SQL-Abfrageergebnis ein Ergebnis steht!
Gruß Jan
*Topic verschoben*
ich habe vor längerer Zeit eine Anwendung geschrieben bei der Daten aus einer SQLite-Datei gelesen werden.
Nun habe ich in den Datentabellen ein Feld durch ein anderes ersetzt - das ist nicht weiter kritisch, da dieses nur in dem Where-Statement zum Tragen kommt.
Wenn ich den zugehörigen SQL-Ausdruck ausführe, dann werden alle drei gewünschten Spalten Mail, Surname und Firstname DB Browser for SQLite angezeigt.
Bin ich nun im Code, dann bekomme ich für die Zeile, die Mail ausliest folgende Fehlermeldung ausgeworfen:
Hier der zugehörige Code:
Quellcode
- ''' <summary>
- ''' Auslesen der E-Mails aus der Liste
- ''' </summary>
- Private Sub UpdateEMailList_Tab1()
- Dim fEmail As FUNC_Email = New FUNC_Email
- Dim SQL As String = ""
- Select Case _What2Outlook
- Case PrgType.Acad
- SQL = String.Format("SELECT u.EMAIL MAIL ,u.NACHNAME SURNAME, u.VORNAME FIRSTNAME FROM ACAD_INSTALL_{0} ac, ANWENDER u, RECHNER r WHERE (ac.INST_ACAD=3 OR ac.INST_ACAD=4) AND r.ID = ac.ID_RECHNER AND ac.ID>1 AND r.ID_ANWENDER=u.ID ORDER BY u.NACHNAME, u.VORNAME", _AcadVersion)
- Case PrgType.Topobase
- SQL = String.Format("SELECT u.EMAIL Mail ,u.NACHNAME SURNAME, u.VORNAME FIRSTNAME FROM ACAD_INSTALL_{0} ac, ANWENDER u, RECHNER r WHERE ac.INST_ORACLE_64BIT>2 AND r.ID = ac.ID_RECHNER AND ac.ID>1 AND r.ID_ANWENDER=u.ID ORDER BY u.NACHNAME, u.VORNAME", _AcadVersion)
- Case Else
- MessageBox.Show("Ungültige Auswahl!")
- Exit Sub
- End Select
- lb_error_tab1.Items.Clear()
- With lb_email_tab1
- .Items.Clear()
- Dim SQLconnect As New SQLite.SQLiteConnection()
- Dim SQLcommand As SQLiteCommand
- SQLconnect.ConnectionString = String.Format("Data Source={0}", _SqLiteDB)
- SQLconnect.Open()
- SQLcommand = SQLconnect.CreateCommand
- SQLcommand.CommandText = SQL
- Dim SQLreader As SQLiteDataReader = SQLcommand.ExecuteReader()
- Dim tmpEmail As List(Of String) = New List(Of String)
- Dim tmpError As List(Of String) = New List(Of String)
- While SQLreader.Read()
- Dim EMail As String = SQLreader("MAIL").ToString.ToLower
- Dim Nachname As String = CType(SQLreader("SURNAME"), String)
- Dim Vorname As String = CType(SQLreader("FIRSTNAME"), String)
- Dim Fullname As String = Nachname
- If Vorname.Length > 0 Then Fullname += ", " & Vorname
- If Not EMail.ToLower = "dummy" Then 'dummy wird ingnoriert
- If EMail.Length = 0 Then
- Dim Msg As String = Fullname & " - keine Adresse"
- If tmpError.Contains(Msg) = False Then tmpError.Add(Msg)
- Else
- If fEmail.ValiEmail(EMail) = False Then
- Dim Msg As String = EMail & " - ungültige Adresse"
- If tmpError.Contains(Msg) = False Then tmpError.Add(Msg)
- Else
- If tmpEmail.Contains(EMail) = False Then tmpEmail.Add(EMail)
- End If
- End If
- End If
- End While
- ' jetzt in die Liste aufnehmen
- For i As Integer = 0 To tmpEmail.Count - 1
- lb_email_tab1.Items.Add(tmpEmail(i))
- Next
- For i As Integer = 0 To tmpError.Count - 1
- lb_error_tab1.Items.Add(tmpError(i))
- Next
- lbl_email_tab1.Text = String.Format("E-Mail-Adressen ({0})", lb_email_tab1.Items.Count.ToString)
- lbl_error_tab1.Text = String.Format("Namen ohne E-Mail ({0})", lb_error_tab1.Items.Count.ToString)
- SQLcommand.Dispose()
- SQLconnect.Close()
- End With
- End Sub
Hat einer von Euch eine Idee warum es zu dem Fehler kommen könnte?
Habe jetzt nochmal ein Try-Catch um die E-Mail gelegt - da kommt aber nichts.
Was mich nur verwundert ist die Tatsache, dass Mail wohl ein NULL liefert obwohl in dem SQL-Abfrageergebnis ein Ergebnis steht!
Gruß Jan
*Topic verschoben*
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()