Probleem met Function

Status
Niet open voor verdere reacties.

rolands

Gebruiker
Lid geworden
1 nov 2007
Berichten
8
Ik heb 2 probleempjes met een function, wanneer ik deze gebruik krijg ik de melding:

De conversie van tekenreeks Template2 naar type Integer is ongeldig.

Dit is de functie:

Code:
  Function ReadFromDataBase(ByVal SELEC As String, ByVal FROM As String, ByVal Index As Integer)
        Dim theOleDbCommand As New OleDb.OleDbCommand("SELECT " & SELEC & " FROM " & FROM & " WHERE(Department) = '" & Index & "'", New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & strDataSource & "';"))
        theOleDbCommand.Connection.Open()
        Dim theReader As OleDb.OleDbDataReader = theOleDbCommand.ExecuteReader(CommandBehavior.CloseConnection)
        While theReader.Read() = True
            Return theReader(0).ToString()
        End While
    End Function

En deze roep ik aan wanneer een combobox veranderd van status dmv:

Code:
Private Sub TemplateComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TemplateComboBox.SelectedIndexChanged

Me.ADDomainTextBox.Text = ReadFromDataBase("ADDomainName", "Templates", TemplateComboBox.SelectedItem)

End Sub

Daarnaast wordt aangegeven over de functie:
Function 'ReadFromDataBase' doesn't return a value on all code paths. A null reference exception could occur at run time when the result is used.

Wat lijkt dat er een mogelijkheid bestaat dat er geen waarde terug kan worden gegeven in bepaalde gevallen.

Hoe kan ik de functie goed werkend krijgen?

Tnx,
Roland
 
Om op je eerste vraag te antwoorden, zijn er te weinig gegevens. Zoals op welke regel komt de fout voor? welk type gegevens haal je uit je database.

Om op je 2de vraag te antwoorden:
Wanneer er geen objecten uit je reader komen (dit wil zeggen: als je selectie-query geen waardes teruggeeft), dan zal de functie ook geen waarde terug geven. Je schrijft best onder je while lus nogmaals een return die een lege string teruggeeft.

Code:
        While theReader.Read() = True
            Return theReader(0).ToString()
        End While
return ""
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan