2017-07-11 2 views
2

Unten ist mein SQL-Abfrage:Wie Teil der Zeichenfolge aus einem bestimmten Wort löschen?

select * from Table where col1 = @param1 and col2 = @param2 

Jetzt möchte ich alles aus löschen where-Klausel so erwartete Ausgabe ist wie folgt:

select * from Table; 

Code:

string str = "select * from Table where col1 = @param1 and col2 = @param2"; 

var str = sqlQuery.Replace("where", ""); // select * from Table col1 = @param1 and col2 = @param2 
+1

Werfen Sie einen Blick auf die Methoden 'IndexOf' und' SubString' an einer Schnur typische Hausaufgaben Frage: S –

Antwort

6

Ein Weg wäre, mit IndexOf zu arbeiten und Substring.

var sql = "select* from Table where col1 = @param1 and col2 = @param2"; 
var index = sql.IndexOf("where", StringComparison.OrdinalIgnoreCase); 
var newSql = sql.Substring(0, index); 

Sie könnten Trim verwenden als auch den weißen Bereich am Ende zu entfernen. Das würde so aussehen.

+0

hinzufügen 'StringComparison.OrdinalIgnoreCase' zu' IndexOf' Methode auch. –

+0

@ S.Akbari Gute Idee, habe meinen Code bearbeitet. Danke :) –

+0

@MightyBadaboom Es sollte "OrdinalIgnoreCase" sein, da das SQL die Groß- und Kleinschreibung nicht beachtet. –

2

Ich erstellte unten Erweiterungsmethode mit Hilfe der Antwort von @Mighty Badaboom zur Verfügung gestellt.

static public string Foo(this string original,string wordToFind, StringComparison stringComparision = StringComparison.OrdinalIgnoreCase) 
     { 
      var index = original.IndexOf("where", stringComparision); 
      return original.Substring(0, index).Trim(); 
     } 

string newSql = Foo(str, "where", StringComparison.OrdinalIgnoreCase); 
+1

Wenn Sie eine Erweiterungsmethode dafür erstellen, obwohl ich denke, dass dies für Ihre Situation übertrieben ist, sollten Sie es als eins bezeichnen: 'string newSql = str.Foo (" where ", StringComparison.OrdinalIgnoreCase); '. Sie müssen es nicht so nennen, Sie können es auf die * statische * Weise aufrufen, aber dann sehe ich nicht den Punkt, der eine Erweiterungsmethode dafür macht. – Abbas

Verwandte Themen