Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat mengendalikan nilai null dengan selamat apabila menggunakan SQL DataReader?
Mengelakkan kesilapan semasa berurusan dengan nulls dalam SQL datareader
Objek populasi dengan data pangkalan data adalah amalan standard, sering dipermudahkan oleh alat seperti SQL DataReader. Walau bagaimanapun, nilai null dalam lajur pangkalan data boleh menyebabkan pengecualian yang tidak dijangka semasa proses ini. Sebagai contoh, memberikan lajur NULL
FirstName
SQL DataReader menyediakan kaedah
, cara yang mudah namun berkesan untuk memeriksa nilai null sebelum mengakses data lajur. Ini menghalang pengecualian dengan memastikan anda hanya cuba mengambil data apabila ia tersedia.
IsDBNull
inilah cara menggunakan
IsDBNull
<code class="language-csharp">if (!SqlReader.IsDBNull(indexFirstName)) { employee.FirstName = sqlreader.GetString(indexFirstName); }</code>(di
) tidak batal. Hanya jika ia mengandungi nilai akan kaedah FirstName
dipanggil dan nilai yang diberikan kepada harta indexFirstName
. GetString
employee.FirstName
Untuk kod yang lebih bersih, lebih banyak dipelihara, pertimbangkan untuk membuat kaedah lanjutan. Ini merangkumi pemeriksaan null, menjadikan kod anda lebih mudah dibaca dan mengurangkan kelebihan.
Contoh Kaedah Pelanjutan:
kaedah
<code class="language-csharp">public static string SafeGetString(this SqlDataReader reader, int colIndex) { return reader.IsDBNull(colIndex) ? string.Empty : reader.GetString(colIndex); }</code>ini mengembalikan rentetan kosong jika lajur adalah null; Jika tidak, ia mengembalikan nilai rentetan. Menggunakannya memudahkan kod anda dengan ketara:
SafeGetString
<code class="language-csharp">employee.FirstName = SqlReader.SafeGetString(indexFirstName);</code>, sama ada secara langsung atau melalui kaedah lanjutan yang dibuat dengan baik, menjamin pengendalian data yang teguh dan bebas ralat ketika bekerja dengan nilai pangkalan data SQL dan NULL.
Atas ialah kandungan terperinci Bagaimanakah saya dapat mengendalikan nilai null dengan selamat apabila menggunakan SQL DataReader?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!