Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan Parameter SQL dengan Klausa IN dan Senarai Rentetan?

Bagaimana Menggunakan Parameter SQL dengan Klausa IN dan Senarai Rentetan?

Linda Hamilton
Linda Hamiltonasal
2025-01-03 14:28:39477semak imbas

How to Use SQL Parameters with an IN Clause and a List of Strings?

Melakukan Pertanyaan IN dengan Senarai Rentetan menggunakan Parameter SQL

Kod anda cuba melaksanakan pernyataan IN menggunakan Senarai sebagai parameter untuk parameter SQL @settings. Walau bagaimanapun, pendekatan ini tidak sah kerana ia memerlukan jenis data yang disokong untuk pengikatan.

Untuk melaksanakan pertanyaan IN dengan senarai rentetan, anda boleh mengikuti langkah berikut:

  1. Buat templat pertanyaan rentetan: Bina pertanyaan rentetan yang merangkumi ruang letak untuk setiap elemen dalam senarai. Contohnya:
string sql = "SELECT dscr FROM system_settings WHERE setting IN ({0})";
  1. Tukar senarai kepada tatasusunan parameter: Buat tatasusunan nama parameter, di mana setiap nama sepadan dengan pemegang tempat dalam pertanyaan templat.
string[] paramArray = settingList.Select((x, i) => "@settings" + i).ToArray();
  1. Formatkan pertanyaan: Gantikan ruang letak dalam templat pertanyaan dengan nama parameter.
cmd.CommandText = string.Format(sql, string.Join(",", paramArray));
  1. Tambahkan parameter pada arahan: Cipta dan tambah SqlParameter untuk setiap elemen dalam senarai, menggunakan nama dan nilai parameter yang sepadan.
for (int i = 0; i < settingList.Count; ++i)
{
    cmd.Parameters.Add(new SqlParameter("@settings" + i, settingList[i]));
}

Dengan mengikuti langkah ini, anda boleh dengan selamat lakukan pertanyaan IN dengan senarai rentetan menggunakan parameter SqlCommand. Pendekatan ini melibatkan mencipta nama parameter tersuai untuk setiap rentetan dalam senarai dan menentukan jenis data yang sesuai untuk SqlParameter.

Atas ialah kandungan terperinci Bagaimana Menggunakan Parameter SQL dengan Klausa IN dan Senarai Rentetan?. 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