Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

ExecuteNonQuery () cho Chèn

Có một số vấn đề với mã này.

Điều quan trọng nhất là bạn không đặt Kết nối thuộc tính, vì vậy lệnh không có cách nào biết cách kết nối với cơ sở dữ liệu.

Tôi cũng thực sự khuyên bạn nên sử dụng bằng cách sử dụng và cả tham số hóa truy vấn của bạn:

Cuối cùng, không khai báo kết nối và lệnh bên ngoài hàm trừ khi bạn cần. Bạn chỉ nên giữ kết nối và lệnh miễn là bạn cần chúng.

Vì vậy, hàm của bạn sẽ trông giống như sau:

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

Lưu ý rằng hiện tại, bạn sẽ luôn trả về 0. Thay vì phải kiểm tra giá trị được trả về từ hàm, ví dụ trên sẽ đơn giản đưa ra một ngoại lệ. Điều này làm cho mã rõ ràng hơn một chút (vì người gọi sẽ phải hiểu rằng 0 là một điều kiện lỗi) và, nếu bạn cần xử lý ngoại lệ, chỉ cần bọc lệnh gọi hàm này trong một mã Try-Catch khối




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chạy truy vấn db (sql server 2005) với ajax. Nó có khả thi không?

  2. Entity Framework:Đã có một DataReader mở được liên kết với Lệnh này

  3. SQL Server Chuyển đổi số nguyên thành chuỗi nhị phân

  4. Điều gì xảy ra với Id khóa chính khi nó vượt quá giới hạn?

  5. Làm thế nào bạn có thể đặt tên cho các Bảng của Tập dữ liệu mà bạn trả về trong một chương trình đã lưu trữ?