Il y a quelques problèmes avec ce code.
Le plus important est que vous ne définissez pas la Connexion , la commande n'a donc aucun moyen de savoir comment se connecter à la base de données.
Je recommanderais également fortement d'utiliser en utilisant , et aussi paramétrage votre requête :
Enfin, ne déclarez pas la connexion et la commande en dehors de la fonction, sauf si vous en avez besoin. Vous ne devez conserver la connexion et la commande qu'aussi longtemps que vous en avez besoin.
Ainsi, votre fonction finirait par ressembler à :
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
Notez qu'actuellement, vous retournerez 0 tout le temps. Plutôt que d'avoir à vérifier la valeur renvoyée par la fonction, l'exemple ci-dessus lèvera simplement une exception. Cela rend le code légèrement plus propre (car l'appelant devrait comprendre que 0 est une condition d'erreur), et, si vous avez besoin de gérer l'exception, encapsulez simplement l'appel à cette fonction dans un Try-Catch
bloquer