动态查询的C#字符串操作

时间:2010-08-18 16:49:42

标签: c# asp.net string

我有一个字符串

它包含可以包含的任何一个 (1)

 strQuery = "TempTable.Group_No IN ()";

(2)

strQuery = "TempTable.Group_No IN (1,2,3,4,....)";

我的任务是它是否包含“TempTable.Group_No IN()”,(即)IN CLAUSE without data

我必须用"TempTable.Group_No IN (NULL)"

替换字符串(IN()和IN(NULL))

如何在C#中执行它?

3 个答案:

答案 0 :(得分:2)

怎么样......

strQuery = strQuery.Replace(“()”,“(NULL)”);

......还是有点太简单了?

答案 1 :(得分:2)

我不知道你有多担心其他方面的空括号,但你可以用它来更确定你正在替换正确的东西。

strQuery = strQuery.Replace("IN ()", "IN (NULL)");

答案 2 :(得分:2)

我假设输入是下面解决方案的整数数组。尝试将其作为控制台应用程序:

static void Main(string[] args)
{
    int[] ids1 = new int[] { 1, 2, 3, 4, 5 };
    int[] ids2 = new int[] {};

    Console.WriteLine(FormatQuery(ids1));
    Console.WriteLine(FormatQuery(ids2));           
}

static string FormatQuery(int[] ids)
{
    return string.Format("TempTable.Group_No IN ({0})", 
        ids.Length > 0 ? string.Join(",", ids) : "NULL");
}