Es gibt ein paar Probleme mit diesem Code.
Das Wichtigste ist, dass Sie die Verbindung -Eigenschaft, sodass der Befehl nicht wissen kann, wie er sich mit der Datenbank verbinden soll.
Ich würde auch dringend empfehlen, mit , und auch parametrieren Ihre Anfrage:
Deklarieren Sie schließlich die Verbindung und den Befehl nicht außerhalb der Funktion, es sei denn, Sie müssen dies tun. Sie sollten die Verbindung und Befehle nur so lange aufrechterhalten, wie Sie sie benötigen.
Ihre Funktion würde also folgendermaßen aussehen:
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
Beachten Sie, dass Sie derzeit immer 0 zurückgeben. Anstatt den von der Funktion zurückgegebenen Wert zu überprüfen, löst das obige Beispiel einfach eine Ausnahme aus. Dies sorgt für etwas saubereren Code (da der Aufrufer verstehen müsste, dass 0 eine Fehlerbedingung ist), und wenn Sie die Ausnahme behandeln müssen, packen Sie den Aufruf dieser Funktion einfach in einen Try-Catch
blockieren