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)
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) + ")";
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%'
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";
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!