Bolehkah .NET MySqlCommand Memanfaatkan Pembolehubah Yang Ditakrifkan Pengguna MySQL?
Melaksanakan pertanyaan MySQL dalam .NET menggunakan MySqlAdapter boleh menimbulkan cabaran jika pertanyaan itu menggunakan ditentukan pengguna pembolehubah.
Percubaan Pertanyaan Khusus:
Pernyataan SQL berikut cuba untuk menetapkan nombor baris kepada baris yang berbeza:
SELECT @rownum := @rownum +1 rownum, t . * FROM ( SELECT @rownum :=0 ) r, ( SELECT DISTINCT TYPE FROM `node` WHERE TYPE NOT IN ('ad', 'chatroom') )t
Pengecualian Ditemui:
Apabila pertanyaan ini dilaksanakan dalam .NET, pengecualian berlaku kerana pembolehubah @rownum ditafsirkan sebagai parameter, yang memerlukan takrifan eksplisit.
Penyelesaian:
Untuk menyelesaikan isu ini, adalah perlu untuk menentukan bahawa pembolehubah pengguna dibenarkan dalam rentetan sambungan. Ini boleh dicapai dengan menambah parameter berikut:
;Allow User Variables=True
Rentetan Sambungan Dikemas Kini:
sqlConnection.ConnectionString = "Data Source=localhost;Initial Catalog=myDb;Username=myUser;Password=myPwd;Allow User Variables=True";
Maklumat Tambahan:
Penyelesaian ini serasi dengan versi .NET Connector untuk MySQL yang lebih baharu. Untuk butiran lanjut, rujuk blog ini: [Cara Menggunakan Pembolehubah Ditakrifkan Pengguna dalam .NET dengan MySQL](blog terpaut).
Atas ialah kandungan terperinci Bolehkah .NET MySqlCommand Menggunakan Pembolehubah Ditakrifkan Pengguna MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!