Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Parameter LIKE dan IN Keadaan dalam .NET Queries?

Bagaimana untuk Parameter LIKE dan IN Keadaan dalam .NET Queries?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-01 07:37:10475semak imbas

How to Parameterize LIKE and IN Conditions in .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:

  • ID Kategori: Senarai nombor yang dipisahkan koma tanpa petikan.
  • Nama: Rentetan yang mungkin mengandungi aksara khas.

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!

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