Tertib dan Keutamaan Parameter OleDbCommand
Dalam cubaan menyahpepijat pertanyaan, didapati bahawa susunan parameter dalam OleDbCommand boleh menjejaskan keputusan. Apabila parameter ditambahkan di luar susunan:
cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut; cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin; cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
tiada keputusan dikembalikan. Walau bagaimanapun, apabila parameter ditambah dalam susunan yang sama seperti yang dipaparkan dalam pertanyaan:
cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete; cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut; cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;
pertanyaan berfungsi dengan baik.
Percanggahan ini berpunca daripada fakta bahawa OleDbCommand tidak menyokong yang dinamakan parameter untuk arahan teks. Seperti yang didokumenkan pada 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, tanda soal (?) ruang letak mesti digunakan.
Oleh itu, apabila menggunakan arahan teks dengan OleDbCommand, susunan parameter ditambahkan pada koleksi adalah penting. Pesanan mesti sepadan terus dengan susunan tanda soal pemegang tempat dalam teks arahan.
Atas ialah kandungan terperinci Mengapa Perintah Parameter Penting dalam OleDbCommand Apabila Menggunakan Perintah Teks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!