Hay algunos problemas con este código.
El más importante es que no está configurando la Conexión propiedad, por lo que el comando no tiene forma de saber cómo conectarse a la base de datos.
También recomiendo encarecidamente utilizar using , y también parametrización su consulta:
Finalmente, no declare la conexión y el comando fuera de la función a menos que lo necesite. Solo debe mantener la conexión y el comando durante el tiempo que los necesite.
Entonces su función terminaría pareciéndose a:
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
Tenga en cuenta que actualmente, devolverá 0 todo el tiempo. En lugar de tener que verificar el valor devuelto por la función, el ejemplo anterior simplemente generará una excepción. Esto hace que el código sea un poco más limpio (ya que la persona que llama tendría que entender que 0 es una condición de error) y, si necesita manejar la excepción, simplemente ajuste la llamada a esta función en un Try-Catch
bloquear