我在 SSRS2005 中的报告中添加了一些自定义代码,这些代码在 BIDS2005 中完美运行,但在我部署到服务器时却没有。这是自定义代码:
Public Function GetUsers(ByVal param As Integer) As String
Dim sqlCon As New System.Data.SqlClient.SqlConnection
Dim cmd As New System.Data.SqlClient.SqlCommand
Dim dRet As String
Dim sCmdText As String
sqlCon.ConnectionString = "data source=MYSERVER;initial catalog=MYDB;Integrated Security=true"
cmd = New System.Data.SqlClient.SqlCommand
sCmdText = "SELECT dbo.udf_MyFunction("
'cmd.CommandType = CommandType.Text
cmd.Connection = sqlCon
cmd.CommandTimeout = 0
sCmdText = sCmdText & param
sCmdText = sCmdText & ")"
cmd.CommandText = sCmdText
If sqlCon.State <> System.Data.ConnectionState.Open Then
sqlCon.Open()
End If
dRet = cmd.ExecuteScalar() & ""
sqlCon.Close()
Return dRet
End Function
为了使用这段代码,我必须添加这个程序集:
System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
当用户单击特定文本框时,报告中的一个值被传递给 SQL 函数,并且整数列表被返回给详细报告。在 BIDS 中,这每次都能完美运行。但是,我已将其部署在两个不同的报表服务器上,但它不起作用。详细报告打开,但没有通过。
令人沮丧的是,当我打开一个 SQL Server Profiler 跟踪并选择了几乎每个选项时,我什么也得不到。我知道代码正在访问我的 SQL 数据库,因为它从数据库返回结果,但探查器没有显示任何发生的事情。这使我几乎不可能进行故障排除。
有任何想法吗?