Menggunakan Pernyataan, SQL dan SqlConnection dalam C#
Mengendalikan ralat semasa operasi pangkalan data adalah penting dalam pembangunan. Apabila bekerja dengan SQL dan SqlConnection dalam C#, pernyataan penggunaan menyediakan sintaks yang mudah untuk mengendalikan sumber dan memastikan pelupusan yang betul. Walau bagaimanapun, persoalan timbul tentang pengendalian pengecualian yang mungkin berlaku semasa operasi.
Bolehkah Pernyataan Penggunaan Menangani Ralat Pembukaan Sambungan?
private static void CreateCommand(string queryString, string connectionString) { using (SqlConnection connection = new SqlConnection( connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); command.Connection.Open(); command.ExecuteNonQuery(); } }
Secara lalai, pernyataan penggunaan diterjemahkan untuk cuba-akhir menyekat tanpa sebarang kenyataan tangkapan yang jelas. Ini bermakna jika ralat berlaku semasa membuka sambungan, pernyataan menggunakan tidak akan menangkap pengecualian.
Menangkap Ralat di Luar Pernyataan Penggunaan
Jika anda cuba menangkap ralat di luar pernyataan penggunaan, ia tidak akan ditangkap kerana logik pelupusan sudah dilaksanakan.
Penyelesaian Menggunakan Pernyataan Menggunakan
Untuk mengendalikan ralat pembukaan sambungan menggunakan pernyataan menggunakan, blok cuba-tangkap boleh ditambah dalam blok menggunakan:
private static void CreateCommand(string queryString, string connectionString) { using (SqlConnection connection = new SqlConnection( connectionString)) { try { SqlCommand command = new SqlCommand(queryString, connection); command.Connection.Open(); command.ExecuteNonQuery(); } catch (InvalidOperationException) { // Log and/or rethrow or ignore } catch (SqlException) { // Log and/or rethrow or ignore } catch (ArgumentException) { // Log and/or rethrow or ignore } } }
Pengubahsuaian ini memastikan kemungkinan pengecualian semasa pembukaan sambungan dikendalikan dengan anggun.
Atas ialah kandungan terperinci Bolehkah Pernyataan `using` C# Menangani Ralat Pembukaan SqlConnection?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!