以下是我的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
答案 0 :(得分:7)
一种方法是使用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();
答案 1 :(得分:2)
我在@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);