Ci sono alcuni problemi con questo codice.
La cosa più significativa è che non stai impostando Connessione proprietà, quindi il comando non ha modo di sapere come connettersi al database.
Consiglio inoltre vivamente di utilizzare utilizzando e anche parametrizzazione la tua richiesta:
Infine, non dichiarare la connessione e il comando al di fuori della funzione a meno che non sia necessario. Dovresti mantenere la connessione e il comando in giro solo per il tempo necessario.
Quindi la tua funzione finirebbe per assomigliare 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
Nota che al momento, restituirai sempre 0. Invece di dover controllare il valore restituito dalla funzione, l'esempio precedente genererà semplicemente un'eccezione. Ciò rende il codice leggermente più pulito (poiché il chiamante dovrebbe capire che 0 è una condizione di errore) e, se è necessario gestire l'eccezione, avvolgere semplicemente la chiamata a questa funzione in un Try-Catch
bloccare