Há alguns problemas com este código.
O mais significativo é que você não está configurando o comando Conexão propriedade, então o comando não tem como saber como se conectar ao banco de dados.
Eu também recomendo usar usando , e também parametrização Sua pergunta:
Por fim, não declare a conexão e o comando fora da função, a menos que seja necessário. Você só deve manter a conexão e o comando pelo tempo que precisar.
Então sua função ficaria assim:
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
Observe que, atualmente, você retornará 0 o tempo todo. Em vez de ter que verificar o valor retornado da função, o exemplo acima simplesmente lançará uma exceção. Isso cria um código um pouco mais limpo (já que o chamador teria que entender que 0 é uma condição de erro) e, se você precisar lidar com a exceção, simplesmente envolva a chamada para esta função em um
Try-Catch
quadra