Pernyataan menggunakan C# menyediakan cara yang mudah untuk mewujudkan skop di mana objek pakai buang dijamin untuk dilupuskan dengan betul, walaupun pengecualian berlaku dalam skop itu. Apabila menggunakan pernyataan ini dengan ADO.NET dan kelas SqlConnection, adalah penting untuk mempertimbangkan cara ralat akan dikendalikan.
Kod Contoh
Coretan kod berikut menunjukkan penggunaan daripada pernyataan menggunakan dengan SqlConnection dan SqlCommand:
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(); } }
Pengendalian Ralat
Pernyataan penggunaan menyediakan sintaks yang dipermudahkan untuk melaksanakan corak cuba-akhir. Jika pengecualian berlaku dalam blok penggunaan, kaedah Dispose() objek SqlConnection masih akan dipanggil, memastikan pembersihan sumber yang betul.
Walau bagaimanapun, jika ralat berlaku semasa pembukaan sambungan (cth., rentetan sambungan tidak sah), blok penggunaan tidak akan menangkap pengecualian. Ini kerana kaedah Open() dipanggil dalam blok penggunaan, dan sebarang pengecualian yang berlaku sebelum blok penggunaan bermula tidak akan dikendalikan oleh pernyataan penggunaan.
Penyelesaian Cadangan
Untuk melaksanakan pengendalian ralat dalam blok penggunaan, anda boleh menggunakan corak cuba-tangkap. Contohnya, coretan kod berikut menambah blok cuba pada 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 } } }
Dengan menambahkan blok cuba, anda boleh mengendalikan sebarang pengecualian yang berlaku semasa pelaksanaan kaedah dan log Open(), baling semula atau abaikan mereka seperti yang dikehendaki.
Atas ialah kandungan terperinci Bagaimanakah Pernyataan `menggunakan` C# Mengendalikan Ralat dengan `SqlConnection`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!