Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

ExecuteNonQuery() untuk Sisipan

Ada beberapa masalah dengan kode ini.

Yang paling signifikan adalah Anda tidak menyetel Koneksi properti, sehingga perintah tidak memiliki cara untuk mengetahui cara menghubungkan ke database.

Saya juga sangat menyarankan untuk menggunakan menggunakan , dan juga parameterisasi permintaan Anda:

Terakhir, jangan mendeklarasikan koneksi dan perintah di luar fungsi kecuali Anda perlu. Anda hanya boleh menyimpan koneksi dan perintah selama Anda membutuhkannya.

Jadi fungsi Anda akan terlihat seperti:

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

Perhatikan bahwa saat ini, Anda akan selalu mengembalikan 0. Daripada harus memeriksa nilai yang dikembalikan dari fungsi, contoh di atas hanya akan mengeluarkan pengecualian. Ini menghasilkan kode yang sedikit lebih bersih (karena penelepon harus memahami bahwa 0 adalah kondisi kesalahan), dan, jika Anda perlu menangani pengecualian, cukup bungkus panggilan ke fungsi ini dalam Try-Catch blokir




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi Bernilai Tabel Multi-pernyataan vs Fungsi Bernilai Tabel Sebaris

  2. Ekspresi Reguler MSSQL

  3. Menerapkan Indikator Kinerja SQL Server untuk Kueri, Prosedur Tersimpan, dan Pemicu

  4. SQL Server - Hapus semua karakter ASCII yang tidak dapat dicetak

  5. Bagaimana saya bisa mengonversi bigint (stempel waktu UNIX) ke datetime di SQL Server?