Er zijn een paar problemen met deze code.
Het belangrijkste is dat u de Verbinding eigenschap, dus het commando weet niet hoe het verbinding moet maken met de database.
Ik zou ook sterk aanbevelen om gebruiken , en ook parametrering uw vraag:
Ten slotte, declareer de verbinding en het commando niet buiten de functie, tenzij dat nodig is. Je moet de verbinding en het commando alleen behouden zolang je ze nodig hebt.
Dus je functie zou er uiteindelijk zo uitzien:
Public Function add(ByVal area As String, ByVal user As String) As Integer
Dim mydao As New Connection
Using connection As New SqlConnection(mydao.ConnectionString())
Using command As New SqlCommand()
' Set the connection
command.Connection = connection
' Not necessary, but good practice
command.CommandType = CommandType.Text
' Example query using parameters
command.CommandText = "INSERT into Area (Area, user) VALUES (@area, @user)"
' Adding the parameters to the command
command.Parameters.AddWithValue("@area", area)
command.Parameters.AddWithValue("@user", user)
connection.Open()
Return command.ExecuteNonQuery()
End Using ' Dispose Command
End Using ' Dispose (and hence Close) Connection
End Function
Houd er rekening mee dat u momenteel altijd 0 retourneert. In plaats van de waarde te controleren die door de functie wordt geretourneerd, genereert het bovenstaande voorbeeld eenvoudig een uitzondering. Dit zorgt voor een iets schonere code (aangezien de beller zou moeten begrijpen dat 0 een foutconditie is), en als u de uitzondering moet afhandelen, verpakt u de aanroep van deze functie eenvoudig in een Try-Catch
blok