S tímto kódem je několik problémů.
Nejdůležitější je, že nenastavujete Připojení vlastnost, takže příkaz nemá žádný způsob, jak zjistit, jak se připojit k databázi.
Také bych důrazně doporučil využít používání a také parametrizace váš dotaz:
Nakonec nedeklarujte připojení a příkaz mimo funkci, pokud to nepotřebujete. Spojení a příkaz byste měli udržovat pouze tak dlouho, jak je potřebujete.
Vaše funkce by tedy nakonec vypadala takto:
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
Všimněte si, že v současné době budete neustále vracet 0. Namísto kontroly hodnoty vrácené funkcí výše uvedený příklad jednoduše vyvolá výjimku. Díky tomu je kód o něco čistší (volající by musel pochopit, že 0 je chybový stav), a pokud byste potřebovali zpracovat výjimku, jednoduše zabalte volání této funkce do Try-Catch
blok