sql >> Database teknologi >  >> RDS >> Sqlserver

ExecuteNonQuery() for Insert

Der er et par problemer med denne kode.

Det vigtigste er, at du ikke indstiller kommandoens Forbindelse egenskab, så kommandoen har ingen måde at vide, hvordan man forbinder til databasen.

Jeg vil også kraftigt anbefale at bruge ved at bruge , og også parameterisering din forespørgsel:

Endelig skal du ikke erklære forbindelsen og kommandoen uden for funktionen, medmindre du har brug for det. Du bør kun beholde forbindelsen og kommandoen, så længe du har brug for dem.

Så din funktion ville ende med at se sådan ud:

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

Bemærk, at du i øjeblikket vil returnere 0 hele tiden. I stedet for at skulle kontrollere den værdi, der returneres fra funktionen, vil ovenstående eksempel blot kaste en undtagelse. Dette giver en lidt renere kode (da den, der ringer, skal forstå, at 0 er en fejltilstand), og hvis du havde brug for at håndtere undtagelsen, skal du blot omslutte opkaldet til denne funktion i en Try-Catch blokere




  1. MySQL-forbindelse er ikke tilgængelig, når du bruger SQLAlchemy(MySQL) og Flask

  2. sql for at vælge én post for hver måned med en sum af månedens poster

  3. Sådan indstilles en Ruby on Rails 4+ app's standard db isolationsniveau

  4. Bedste måde at køre Oracle-forespørgsler med jævne mellemrum