我在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数据库,因为它返回数据库的结果,但是分析器没有显示任何发生的事情。这使我几乎不可能排除故障。
有什么想法吗?