Mengesahkan Kewujudan Lajur dalam Objek SqlDataReader
Dalam lapisan akses data, selalunya perlu untuk mencipta kaedah yang memproses data yang dikembalikan daripada prosedur tersimpan yang mungkin mempunyai struktur lajur yang berbeza-beza. Untuk senario di mana satu prosedur tersimpan mengembalikan lajur tambahan berbanding yang lain, timbul keperluan untuk mengubah suai kaedah untuk mengendalikan kedua-dua senario. Artikel ini meneroka cara menyemak kewujudan lajur tertentu dalam objek SqlDataReader.
Penyelesaian:
Penyelesaian yang dicadangkan melibatkan mencipta kaedah sambungan untuk antara muka IDataRecord bernama HasColumn. Kaedah ini mengambil nama lajur sebagai parameter dan berulang melalui semua lajur dalam rekod, membandingkan setiap nama lajur dengan yang disediakan. Jika padanan ditemui, ia mengembalikan benar, menunjukkan kehadiran lajur; jika tidak, ia mengembalikan palsu.
Berikut ialah kod untuk kaedah sambungan HasColumn:
public static class DataRecordExtensions { public static bool HasColumn(this IDataRecord dr, string columnName) { for (int i = 0; i < dr.FieldCount; i++) { if (dr.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase)) return true; } return false; } }
Penggunaan:
Untuk menentukan sama ada objek SqlDataReader mengandungi lajur tertentu, hanya panggil kaedah HasColumn pada objek dan masukkan nama lajur yang anda minati. kaedah akan kembali benar jika lajur wujud, dan palsu sebaliknya. Ini membolehkan anda mengendalikan pelbagai struktur lajur dalam prosedur tersimpan dengan cara yang mantap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak Kewujudan Lajur dalam SqlDataReader?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!