下面是我的sql查询:
select * from Table where col1 = @param1 and col2 = @param2
现在我想从 where 子句中删除所有内容,因此预期的输出如下所示:
select * from Table;
法典:
string str = "select * from Table where col1 = @param1 and col2 = @param2";
var str = sqlQuery.Replace("where", ""); // select * from Table col1 = @param1 and col2 = @param2
一种方法是使用IndexOf
和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);
您也可以使用Trim
来删除末尾的空格。这看起来像。
var newSql = sql.Substring(0, index).Trim();
我在 @Mighty Badaboom 提供的答案的帮助下创建了下面的扩展方法。
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);