Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Parameter LIKE dan IN Keadaan dalam .NET Queries?
Pertanyaan Berparameter dengan Syarat SUKA dan DALAM
Pertanyaan berparameter dalam .Net biasanya melibatkan penggunaan nama parameter tertentu dan menambah nilai pada parameter ini. Walau bagaimanapun, apabila berurusan dengan keadaan seperti IN atau LIKE, yang mungkin memerlukan nilai parameter berbilang atau dinamik, sintaks boleh menjadi lebih kompleks.
Mari kita atasi yang khusus soalan:
Pertanyaan:
SELECT * FROM Products WHERE Category_ID IN (@categoryids) OR name LIKE '%@name%'
Parameter:
Sintaks Diubah Suai:
Untuk mencipta pertanyaan berparameter sepenuhnya, kita perlu membina nama dan nilai parameter secara dinamik untuk keadaan IN. Kita boleh mencapai ini dengan menggunakan gelung:
int[] categoryIDs = ...; string Name = ...; SqlCommand comm = ...; string[] parameters = new string[categoryIDs.Length]; for (int i = 0; i < categoryIDs.Length; i++) { parameters[i] = "@p" + i; comm.Parameters.AddWithValue(parameters[i], categoryIDs[i]); } comm.Parameters.AddWithValue("@name", $"%{Name}%");
Teks Pertanyaan Diubah Suai:
Sambungkan nama parameter yang dijana ke dalam keadaan IN:
WHERE Category_ID IN (@p0, @p1, ...)
Teks pertanyaan akhir akan kelihatan seperti:
SELECT * FROM Products WHERE Category_ID IN (@p0, @p1, ...) OR name LIKE @name
Pendekatan ini memastikan bahawa setiap CategoryID diparameterkan secara individu dan keadaan LIKE juga diparameterkan dengan sintaks corak yang sesuai. Dengan membuat parameter sepenuhnya pertanyaan, anda menghalang suntikan SQL dan meningkatkan prestasi.
Atas ialah kandungan terperinci Bagaimana untuk Parameter LIKE dan IN Keadaan dalam .NET Queries?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!