Heim > Datenbank > MySQL-Tutorial > Wie parametrisiere ich Abfragen mit LIKE- und IN-Bedingungen in .NET?

Wie parametrisiere ich Abfragen mit LIKE- und IN-Bedingungen in .NET?

Susan Sarandon
Freigeben: 2024-12-27 06:43:13
Original
838 Leute haben es durchsucht

How to Parameterize Queries with LIKE and IN Conditions in .NET?

Parametrierte Abfragen mit LIKE- und IN-Bedingungen

Bei der Verwendung parametrisierter Abfragen in .NET veranschaulichen die Beispiele typischerweise deren Verwendung in einfachen Szenarios, z Vergleichen eines einzelnen Spaltenwerts mit einem Parameter. Allerdings können die Dinge komplexer werden, wenn es um Bedingungen wie IN und LIKE geht, die mehrere Parameter oder nicht standardmäßige Zeichen beinhalten.

Abfrage mit IN-Bedingung

Betrachten wir a Abfrage, die nach Produkten basierend auf der Kategorie-ID sucht, wobei die Kategorie-ID eine durch Kommas getrennte Liste von Ganzzahlen sein kann.

SELECT * 
FROM   Products 
WHERE  Category_ID IN (@categoryids) 
Nach dem Login kopieren

Zur Parametrisierung Um diese Abfrage mithilfe eines ganzzahligen Arrays CategoryIDs durchzuführen, müssen wir das Array durchlaufen und für jede Kategorie-ID einen Parameter erstellen.

int[] categoryIDs = new int[] { 238, 1138, 1615, 1616, 1617 };

SqlCommand comm = conn.CreateCommand();
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.CommandText = "SELECT * FROM Products WHERE Category_ID IN (";
comm.CommandText += string.Join(",", parameters) + ")";
Nach dem Login kopieren

Abfrage mit LIKE-Bedingung

Jetzt Fügen wir eine LIKE-Bedingung hinzu, die nach Produkten sucht, deren Namen eine bestimmte Zeichenfolge enthalten, möglicherweise mit Sonderzeichen.

SELECT * 
FROM   Products 
WHERE  Category_ID IN (@categoryids) 
   OR  name LIKE '%@name%'
Nach dem Login kopieren

Um diese Abfrage zu parametrisieren, Wir erstellen einen Parameter für den Namenswert und verwenden die Verkettung, um innerhalb der Abfrage nach dem Namen zu suchen.

string Name = "someone";

SqlCommand comm = conn.CreateCommand();

comm.Parameters.AddWithValue("@name", $"%{Name}%");
comm.CommandText = "SELECT * FROM Products WHERE Category_ID IN (";
comm.CommandText += string.Join(",", parameters) + ")";
comm.CommandText += " OR name LIKE @name";
Nach dem Login kopieren

Mit diesem Ansatz können wir vollständig parametrisierte Abfragen erstellen, die sowohl IN- als auch LIKE-Bedingungen mit unterschiedlichen Parametern verarbeiten Typen, die die Sicherheit und Leistung unseres Datenbankzugriffs gewährleisten.

Das obige ist der detaillierte Inhalt vonWie parametrisiere ich Abfragen mit LIKE- und IN-Bedingungen in .NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage