Akhil Jain Ответов: 1

Как манипулировать string.format с помощью if else в C# ASP.NET-что?


у меня есть строка, в которой я использую String.format в этом я хочу удалить 2-й параметр, если итерация строки будет иметь вид ="" или NULL, а также хочу удалить
. И [источник].[Система.IterationPath] IN ('{1}') из строки, которая будет сформирована.
есть ли какой - нибудь способ обойти строковый формат ?

Что я уже пробовал:

 public void GetProjectInfo(string projectname,string Iteration)
            {
    string querystring = string.Format("select [System.Id], [System.Title],[Story.Author],[Story.Owner],[System.AssignedTo]," +
" [System.WorkItemType],[Microsoft.VSTS.Scheduling.StoryPoints],[Microsoft.VSTS.Common.Priority]," +
"[Microsoft.VSTS.Scheduling.Effort], [Actual.Effort.Completed]" +
",[System.State]," +
 "[System.IterationPath]" +
 " FROM WorkItemLinks" +
 " WHERE" +
" ([Source].[System.TeamProject]='{0}'" +
 " and [Source].[System.WorkitemType] IN ('Feature', 'Bug', 'Product Backlog Item', 'Task')" +
    " AND [Source].[System.IterationPath] IN ('{1}'))"//this line of code will be removed along with iteration parameter 
    +
    " and ([System.Links.LinkType]='System.LinkTypes.Hierarchy-Forward')" +
    " ORDER BY [System.Id] " +
    " mode (Recursive)", projectname, Iteration);

    }

1 Ответов

Рейтинг:
0

Christiaan van Bergen

Вы можете использовать StringBuilder вместо строки.Формат. Таким образом, вы можете утверждать, является ли значение итерации нулевым или пустым.

public void GetProjectInfo(string projectname,string Iteration)
{
	var querystring = new StringBuilder("select [System.Id], [System.Title],[Story.Author],[Story.Owner],[System.AssignedTo],[System.WorkItemType],[Microsoft.VSTS.Scheduling.StoryPoints],[Microsoft.VSTS.Common.Priority],[Microsoft.VSTS.Scheduling.Effort], [Actual.Effort.Completed],[System.State],[System.IterationPath] FROM WorkItemLinks WHERE ");
	
	querystring.AppendFormat("([Source].[System.TeamProject]='{0}' and [Source].[System.WorkitemType] IN ('Feature', 'Bug', 'Product Backlog Item','Task') ", projectname);

    if (!string.IsNullOrEmpty(Iteration)){
		querystring.AppendFormat("AND [Source].[System.IterationPath] IN ('{1}')) ", Iteration);
	}
	
	querystring.Append(" AND ([System.Links.LinkType]='System.LinkTypes.Hierarchy-Forward') ORDER BY [System.Id] mode (Recursive)");

	//use querystring.ToString() as your SQL statement

}