Rumah >pembangunan bahagian belakang >C++ >Adakah Pesanan Parameter Penting dalam Pertanyaan OleDbCommand Menggunakan Pemegang Tempat Tanda Soalan?

Adakah Pesanan Parameter Penting dalam Pertanyaan OleDbCommand Menggunakan Pemegang Tempat Tanda Soalan?

Barbara Streisand
Barbara Streisandasal
2024-12-27 07:53:08249semak imbas

Does Parameter Order Matter in OleDbCommand Queries Using Question Mark Placeholders?

Tertib dan Keutamaan Parameter OleDbCommand

Dalam percubaan untuk menyahpepijat pertanyaan selama 40 minit, didapati bahawa susunan parameter memainkan peranan yang penting. Pertanyaan yang dimaksudkan adalah seperti berikut:

SELECT * FROM tblSomething WHERE id = @id AND debut = @dtDebut AND fin = @dtFin

Walau bagaimanapun, apabila parameter ditambahkan dalam susunan berikut:

cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;
cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;

tiada keputusan dikembalikan. Membalikkan susunan @dtDebut dan @dtFin telah menyelesaikan isu.

Adalah pada mulanya diandaikan bahawa parameter yang dinamakan telah diperkenalkan untuk mengelakkan kebergantungan pesanan tersebut. Walau bagaimanapun, menurut MSDN:

Pembekal OLE DB .NET tidak menyokong parameter yang dinamakan untuk menghantar parameter kepada pernyataan SQL atau prosedur tersimpan yang dipanggil oleh OleDbCommand apabila CommandType ditetapkan kepada Teks. Dalam kes ini, ruang letak tanda soal (?) mesti digunakan.

Oleh itu, adalah penting untuk mengekalkan susunan parameter yang betul apabila menggunakan OleDbCommand dengan parameter yang ditentukan menggunakan pemegang tempat tanda soal.

Atas ialah kandungan terperinci Adakah Pesanan Parameter Penting dalam Pertanyaan OleDbCommand Menggunakan Pemegang Tempat Tanda Soalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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