Обработка строк в C # для динамического запроса - PullRequest
0 голосов
/ 18 августа 2010

У меня есть строка

, содержащаяся в ней, может содержать одно из (1)

 strQuery = "TempTable.Group_No IN ()";

(2)

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

Моя задача, если она содержит "TempTable.Group_No IN () ", (т.е.) IN CLAUSE без данных

мне нужно заменить строку (IN () на IN (NULL)) на "TempTable.Group_No IN (NULL)"

Как выполнитьэто в C #?

Ответы [ 3 ]

2 голосов
/ 18 августа 2010

Я не знаю, насколько вам нужно беспокоиться о пустых скобках в других областях, но вы можете использовать это, чтобы с большей уверенностью заменить правильную вещь.

strQuery = strQuery.Replace("IN ()", "IN (NULL)");
2 голосов
/ 18 августа 2010

Я предполагаю, что входные данные представляют собой массив целых чисел для решения ниже. Попробуйте это как консольное приложение:

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");
}
2 голосов
/ 18 августа 2010

Как насчет ...

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

... или это слишком просто?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...