无法打开连接#Error Rdlc自定义代码

时间:2016-05-06 05:54:29

标签: rdlc

m遇到大麻烦请帮忙...我有Rdlc报告表达式使用自定义代码,其中包含连接字符串但是当我运行报告时它不起作用:( 连接无法打开。这是我到目前为止所做的:

我的自定义Rdlc代码在这里..



    Function GradeCal(ByVal SubDivID As Integer, ByVal Perc As Decimal) As String
        Dim oConn As New System.Data.SqlClient.SqlConnection
        oConn.ConnectionString = "Data Source=*****;Initial Catalog=PSIDB; Persist Security Info=True; User ID=sa; Password=*******"
        oConn.Open()
        Dim oCmd As New System.Data.SqlClient.SqlCommand
        oCmd.Connection = oConn
        oCmd.CommandText = "SELECT * from dbo.[funcGradesCal](" + SubDivID + "," + Perc + ")"
      
        Dim nRetVal As String = oCmd.ExecuteScalar()
        oConn.Close()
        If (nRetVal <> Nothing) Then
            Return nRetVal
        Else
            Return "0-0"
        End If
    End Function
&#13;
&#13;
&#13;

这是我的表达......

&#13;
&#13;
=Code.GradeCal(1,42)
&#13;
&#13;
&#13;

但结果是#Error :(

我在自定义代码中添加了refernece .. System.Data,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089

请给我任何想法

1 个答案:

答案 0 :(得分:0)

在自定义代码中嵌入连接字符串将导致部署噩梦。

更好的方法是创建一个默认值为"0-0"的报表参数,在调用报表时获取数据Dim nRetVal As String = oCmd.ExecuteScalar(),并为报表参数指定nRetVal。< / p>

<强>更新

  1. 将您的函数GradeCal()从报告移至另一个类或模块
  2. 在设计视图中打开报告
  3. 定义报告参数

    • 选择查看 - &gt;菜单
    • 中的报告数据
    • 右键点击参数,然后点击添加参数...
    • 为参数指定名称:GradeCal 4。
    • 可选择为参数
    • 设置默认值
  4. 将您的报告项目从=Code.GradeCal(1,42)修改为=Parameters!GradeCal.Value,或者只需将参数拖放到报告中。

  5. 在您的程序中调用函数dim nRetVal as integer = GradeCal(1,42)以获取数据
  6. 将值传递给参数报告

    Dim param As New ReportParameter("GradeCal",nRetVal) ReportViewer1.LocalReport.SetParameters(param)