sql >> Database >  >> RDS >> Sqlserver

ExecuteNonQuery() voor invoegen

Er zijn een paar problemen met deze code.

Het belangrijkste is dat u de Verbinding eigenschap, dus het commando weet niet hoe het verbinding moet maken met de database.

Ik zou ook sterk aanbevelen om gebruiken , en ook parametrering uw vraag:

Ten slotte, declareer de verbinding en het commando niet buiten de functie, tenzij dat nodig is. Je moet de verbinding en het commando alleen behouden zolang je ze nodig hebt.

Dus je functie zou er uiteindelijk zo uitzien:

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

Houd er rekening mee dat u momenteel altijd 0 retourneert. In plaats van de waarde te controleren die door de functie wordt geretourneerd, genereert het bovenstaande voorbeeld eenvoudig een uitzondering. Dit zorgt voor een iets schonere code (aangezien de beller zou moeten begrijpen dat 0 een foutconditie is), en als u de uitzondering moet afhandelen, verpakt u de aanroep van deze functie eenvoudig in een Try-Catch blok




  1. Geaggregeerde zoekopdracht zonder GROUP BY

  2. Hoe de primaire sleutelduplicatie van een SQL Server 2008-foutcode te identificeren?

  3. MySQL-equivalent van de dblink-module van PostgreSQL?

  4. Een tekenreeks maken op postgreSQL