sql >> Databasteknik >  >> RDS >> Sqlserver

ExecuteNonQuery() för Insert

Det finns några problem med den här koden.

Det viktigaste är att du inte ställer in kommandots Anslutning egenskap, så kommandot har inget sätt att veta hur man ansluter till databasen.

Jag rekommenderar också starkt att du använder med , och även parameterisering din fråga:

Slutligen, förklara inte anslutningen och kommandot utanför funktionen om du inte behöver. Du bör bara behålla anslutningen och kommandot så länge du behöver dem.

Så din funktion skulle sluta se ut så här:

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

Observera att du för närvarande kommer att returnera 0 hela tiden. Istället för att behöva kontrollera värdet som returneras från funktionen, kommer exemplet ovan helt enkelt att skapa ett undantag. Detta ger en lite renare kod (eftersom den som ringer måste förstå att 0 är ett feltillstånd), och om du behövde hantera undantaget, slå helt enkelt in anropet till den här funktionen i en Try-Catch blockera




  1. Att göra en samtidig förekomstmatris från mysql-databas i MYSQL, PHP eller R

  2. Hur får man vi keybindings att fungera i mysql-klienten?

  3. OC4J 10.1.3.3 kan inte hitta ojms.rar inställning av databasbeständigheter

  4. MySQL användarbehörigheter