C# 在绑定之前,如何连接asp.net中的2个或更多3个数据列?

C# 在绑定之前,如何连接asp.net中的2个或更多3个数据列?,c#,asp.net,data-binding,datatable,C#,Asp.net,Data Binding,Datatable,我有下面的数据表 clientcode - jobcode - sitename abc bcd http://ourlocaldomain.com/sites/ 我需要一个新列,其中的值应改为: 我的守则如下: var keywordQuery = new KeywordQuery(site); keywordQuery.SortList.Add("Modified", SortDirection.Descending);

我有下面的数据表

clientcode   - jobcode - sitename
abc          bcd         http://ourlocaldomain.com/sites/
我需要一个新列,其中的值应改为:

我的守则如下:

  var keywordQuery = new KeywordQuery(site);
            keywordQuery.SortList.Add("Modified", SortDirection.Descending);

            var dataTable = KQLUtilities.ExecuteKql(keywordQuery, queryText, selectedProperties.ToArray(), keywordQuery.SortList);

            var jobSiteUrl = new DataColumn("JobSiteUrl");
            jobSiteUrl.Expression = String.Format("{0}/{1}{2}", "SiteName", "ClientCode", "JobCode");

            dataTable.Columns.Add(jobSiteUrl);
我的错误是:

Cannot find column [ClientCodeJobCode].

按照您现在指定表达式的方式,表达式将为:

SiteName/ClientCodeJobCode
因此,在计算表达式时,代码将尝试获取
SiteName
列中的值,并将其与
ClientCodeJobCode
列中的值相除

根据MSDN(请参阅),表达式中的字符串连接是使用
+
运算符完成的

根据您的准确样本数据,这将为您提供所需的输出:

jobSiteUrl.Expression = "SiteName + ClientCode + '/' + JobCode";
产出将是:

http://ourlocaldomain.com/sites/abc/bcd
这与示例url(
http://ourlocaldomain.com.sites/abc/bcd
),但我相信您的输入有误。
站点
之前的
应该是
/
,对吗

如果在某些情况下,您的站点名称不包含尾随的
/
,您可以使用此表达式来检查破折号是否存在,并在需要时添加破折号:

jobSiteUrl.Expression = "SiteName + IIF(SUBSTRING(SiteName, LEN(SiteName), 1) = '/', '', '/') + ClientCode + '/' + JobCode";

您是否尝试在数据表中使用计算列?是的,我在那里输入了一个错误,您之前在注释中的代码工作得非常好!