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

ExecuteNonQuery:Properti koneksi belum diinisialisasi.

Anda perlu menetapkan koneksi ke SqlCommand , Anda dapat menggunakan konstruktor atau properti:

cmd.InsertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ");
cmd.InsertCommand.Connection = connection1;

Saya sangat menyarankan untuk menggunakan using-statement untuk semua jenis yang menerapkan IDisposable seperti SqlConnection , itu juga akan menutup koneksi:

using(var connection1 = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=syslog2;Integrated Security=True"))
using(var cmd = new SqlDataAdapter())
using(var insertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) "))
{
    insertCommand.Connection = connection1;
    cmd.InsertCommand = insertCommand;
    //.....
    connection1.Open();
    // .... you don't need to close the connection explicitely
}

Selain itu Anda tidak perlu membuat koneksi baru dan DataAdapter untuk setiap entri di foreach , meskipun membuat, membuka, dan menutup koneksi tidak berarti ADO.NET akan membuat, membuka dan menutup fisik koneksi tetapi hanya melihat ke kumpulan koneksi untuk koneksi yang tersedia. Namun demikian, ini adalah biaya tambahan yang tidak perlu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengembalikan Stempel Waktu Unix di SQL Server (T-SQL)

  2. Hapus Server Tertaut di SQL Server menggunakan T-SQL

  3. Bagaimana cara memeriksa apakah ada database di SQL Server?

  4. Sisipkan SQL Server jika tidak ada

  5. Cara menghilangkan Batasan Kunci Asing di Database SQL Server untuk semua tabel - Tutorial SQL Server / TSQL Bagian 72