Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从特定单词中删除部分字符串?_C#_Sql_Sql Server - Fatal编程技术网

C# 如何从特定单词中删除部分字符串?

C# 如何从特定单词中删除部分字符串?,c#,sql,sql-server,C#,Sql,Sql Server,下面是我的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", ""); /

下面是我的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);

查看字符串典型作业问题的
IndexOf
SubString
方法:将
StringComparison.OrdinalIgnoreCase
添加到
IndexOf
方法中。@MightyBadaboom它应该是
OrdinalIgnoreCase
,因为SQL不区分大小写。@学习不应该是个问题。只需将其作为一个扩展方法。@MightyBadaboom SQL并不总是不区分大小写,它取决于数据库上的colation。@了解您在哪里使用扩展方法?如果您要为它创建一个扩展方法,尽管我认为这对于您的情况来说太过分了,您应该将其称为:
stringnewsql=str.Foo(“where”,StringComparison.OrdinalIgnoreCase)。你不必这样调用它,你可以用静态的方式调用它,但是我看不出为它创建扩展方法的意义。