Rumah > pembangunan bahagian belakang > C++ > Adakah SqlDataReader Saya Mengandungi Lajur Ini?

Adakah SqlDataReader Saya Mengandungi Lajur Ini?

Linda Hamilton
Lepaskan: 2024-12-31 12:19:10
asal
912 orang telah melayarinya

Does My SqlDataReader Contain This Column?

Cara Menyemak Kewujudan Nama Lajur dalam SqlDataReader

Dalam lapisan akses data, mencipta kaedah yang konsisten untuk mengendalikan prosedur tersimpan yang berbeza boleh mencabar, terutamanya apabila bekerja dengan lajur yang tidak dikongsi merentas semua prosedur. Untuk mengatasi isu ini dalam C#, penyelesaian yang berkesan adalah untuk menyemak sama ada lajur tertentu wujud dalam objek SqlDataReader.

Untuk mencapai ini, kaedah sambungan boleh dilaksanakan:

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;
    }
}
Salin selepas log masuk

Ini kaedah berulang melalui medan SqlDataReader dan membandingkan nama dengan nama lajur yang disediakan, tanpa mengambil kira kes. Jika lajur ditemui, ia kembali benar. Pendekatan ini lebih diutamakan daripada menggunakan pengecualian untuk logik kawalan, yang boleh memberi kesan kepada prestasi dan mengakibatkan positif palsu dalam pengendalian pengecualian.

Selain itu, semasa menggunakan GetSchemaTable() ialah pilihan lain, ia tidak disokong sepenuhnya dan mempamerkan overhed prestasi . Oleh itu, gelung melalui medan ialah kaedah yang boleh dipercayai dan berprestasi untuk menyemak kewujudan lajur dalam objek SqlDataReader.

Atas ialah kandungan terperinci Adakah SqlDataReader Saya Mengandungi Lajur Ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan