【发布时间】:2015-04-17 19:39:11
【问题描述】:
SSRS 讨厌我。现在,这种感觉是相互的。
我正在尝试处理可能为空或不为空的字符串。我用的是VB的IIF语句;在对我收到的错误进行了一些搜索之后,我发现IIF 语句不会像您期望的大多数 if 语句那样短路。我通过将IIF 语句更改为If 解决了这个问题。认为事情很好。
直到我遇到了引用here的问题。
所以我被困住了。我试图将所有内容放在报告代码块中,认为我可以将自己与遇到的问题隔离开来,如下所示:
Public Function DisplayUserName(ByVal UserName As String, ByVal FirstName As String, ByVal MiddleName As String, ByVal LastName As String) As String
'SSRS sucks. Specifically, with empty strings and if statements that aren't IIF. Hence the code block.
'See https://stackoverflow.com/q/27418185/677526. Unfortunately IIF can't work here.
Dim result As New System.Text.StringBuilder()
If Not System.String.IsNullOrWhitespace(UserName) Then
result.Append(UserName)
result.Append(VbCrLf)
End If
If Not System.String.IsNullOrWhitespace(FirstName) Then
result.Append(FirstName)
result.Append(" ")
End If
If Not System.String.IsNullOrWhitespace(MiddleName) Then
result.Append(GetChar(MiddleName, 1))
result.Append(". ")
End If
If Not System.String.IsNullOrWhitespace(LastName) Then
result.Append(LastName)
End If
Return result.ToString()
End Function
...但现在我遇到了IsNullOrWhitespace 不是System.String 成员的问题。
我在这里几乎不知所措,因为我正在与我的工具作斗争。在尝试连接一组可以为空的字符串之前,有没有人遇到过这种情况?你是如何解决这个问题的?值得注意的是,我可以在我们的 SQL 查询中执行此操作(我几乎要放弃并说什么),但字符串连接似乎会稍微减慢查询速度。
【问题讨论】:
-
为什么不在 SQL 中构建字符串?
-
@TabAlleman “值得注意的是,我可以在我们的 SQL 查询中执行此操作(我几乎要放弃并说什么),但字符串连接似乎会减慢查询速度。”跨度>
标签: sql-server vb.net reporting-services