Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

ExecuteNonQuery() за вмъкване

Има няколко проблема с този код.

Най-важното е, че не задавате Връзка свойство, така че командата няма начин да знае как да се свърже с базата данни.

Също така силно препоръчвам да използвате използвайки , както и параметризиране вашата заявка:

И накрая, не декларирайте връзката и командата извън функцията, освен ако не е необходимо. Трябва да поддържате връзката и командването само толкова дълго, колкото имате нужда от тях.

Така че вашата функция ще изглежда така:

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

Имайте предвид, че в момента ще връщате 0 през цялото време. Вместо да се налага да проверява стойността, върната от функцията, горният пример просто ще хвърли изключение. Това прави малко по-изчистен код (тъй като повикващият трябва да разбере, че 0 е състояние на грешка) и, ако трябва да се справите с изключението, просто обвийте извикването на тази функция в Try-Catch блокиране




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Уникалният ключ на Sql Server също ли е индекс?

  2. Как да актуализирате стойността на всички xml атрибути в xml променлива с помощта на t-sql?

  3. ms-access:как да направя правилна повторна заявка?

  4. Нива на изолация на SQL сървър:серия A

  5. как да получите отделните записи въз основа на максимална дата?