用 CrystalReportViewer1 控件在asp.net的网页上显示报表,假设做报表时调用数据表数据的方式调用是能够成功的。但报表是用存储过程获取数据方式会出现下面错误:





找不到表'RptOpenCheck;1' 。 文件 G:\TEMP\FO-OpenCheck {6D191F06-DECF-4A25-88FC-8553E3D435AA}.rpt 内出错: 找不到表。

Error: 未将对象引用设置到对象的实例。

The table 'RptOpenCheck;1' could not be found. Error in File G:\TEMP\FO-OpenCheck {6D191F06-DECF-4A25-88FC-8553E3D435AA}.rpt: The table could not be found.









未能打开该连接。 未能打开该连接。

G:\TEMP\FO-OpenCheck {4E60249E-FC16-4F3D-A610-138FC3297171}.rpt





VS2005 环境,Crsytal Reports 11.5





代码下面:





    Dim crtableLogoninfos As New TableLogOnInfos

    Dim crtableLogoninfo As New TableLogOnInfo

    Dim crConnectionInfo As New ConnectionInfo

    Dim crParameterFields As ParameterFields

    Dim crParameterField As ParameterField

    Dim crParameterValues As ParameterValues

    Dim crParameterDefValues As ParameterValues

    Dim crParameterValue As ParameterValue

    Dim crParameterDiscreteValue As ParameterDiscreteValue





    Dim CrTables As Tables

    Dim CrTable As Table





    Dim ReportName As String

    Dim PrintTo As String       ' P Printer V Window

    Dim ReportPath As String

    Dim UserName As String

    Dim Password As String

    Dim ServerName As String

    Dim DatabaseName As String

    Dim crReportDocument As New ReportDocument









Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load, Me.Load





    Dim strParam As String = Request("p")





'获取用户请求參数

    If Right(strParam, 1) = "~" Then

        strParam = Mid(strParam, 1, Len(strParam) - 1)

    End If





'參数转换为数组

    s = Split(strParam, "~")





    'use odbc connection database 

    With crConnectionInfo

        .AllowCustomConnection = True

        .ServerName = ”ODBCName"

        '.DatabaseName = "TempDB"

        .UserID = "sa"

        .Password = "Microwin"

    End With





    ''use SQL connection database 

    'With crConnectionInfo

    '    .AllowCustomConnection = True

    '    .ServerName = "(local)"

    '    .DatabaseName = "TempDB"

    '    .UserID = "sa"

    '    .Password = "Microwin"

    'End With

    

    '指定报表路径

    ReportPath = Server.MapPath(Request.ApplicationPath)

    ReportNamePath = ReportPath & "\testing.rpt"





    'check report file exists and Load Report

    If System.IO.File.Exists(ReportNamePath) Then

        crReportDocument.Load(ReportNamePath)

    End If

    

    '设置报表文档给报表控件

    Me.CrystalReportViewer1.ReportSource = crReportDocument



'设置连接数据库信息给报表文档

    CrTables = crReportDocument.Database.Tables

    For Each CrTable In CrTables





        crtableLogoninfo = CrTable.LogOnInfo

        crtableLogoninfo.ConnectionInfo = crConnectionInfo

        CrTable.ApplyLogOnInfo(crtableLogoninfo)





'就是这句没有加,所以会出现以上错误信息。仅仅有报表是调用存储过程取数据时才会出现错误。花了我几天时间,最终攻克了。

CrTable.Location = CrTable.Name

    Next





'设置控件显示的属性

    With CrystalReportViewer1





        .AutoDataBind = True

        .ReuseParameterValuesOnRefresh = True

        .EnableDatabaseLogonPrompt = False

        .EnableParameterPrompt = False





        CrystalReportViewer1.DisplayGroupTree = False

        CrystalReportViewer1.DisplayPage = True

        CrystalReportViewer1.DisplayToolbar = True

        CrystalReportViewer1.ReportSource = crReportDocument





    End With





    If Not IsPostBack Then





'取用户请求的參数赋值给报表。假设报表须要參数的话。从第三个元素開始为报表參数值。





        crParameterFields = Nothing

        crParameterFields = CrystalReportViewer1.ParameterFieldInfo





        Dim j As Integer = UBound(s, 1)



        For i = 0 To crParameterFields.Count - 1

            crParameterField = crParameterFields.Item(i)





            crParameterValues = crParameterField.CurrentValues





            crParameterDefValues = Nothing

            crParameterDefValues = New ParameterValues

            crParameterDefValues = crParameterField.DefaultValues





            crParameterDiscreteValue = Nothing

            crParameterDiscreteValue = New ParameterDiscreteValue





            If i > (j - 2) Then





                Select Case crParameterField.ParameterValueKind

                    Case ParameterValueKind.BooleanParameter

                        crParameterDiscreteValue.Value = False

                    Case ParameterValueKind.CurrencyParameter

                        crParameterDiscreteValue.Value = Nothing

                    Case ParameterValueKind.DateParameter

                        crParameterDiscreteValue.Value = System.DateTime.Now

                    Case ParameterValueKind.DateTimeParameter

                        crParameterDiscreteValue.Value = System.DateTime.Now

                    Case ParameterValueKind.NumberParameter

                        crParameterDiscreteValue.Value = Nothing

                    Case ParameterValueKind.StringParameter

                        crParameterDiscreteValue.Value = " "

                    Case ParameterValueKind.TimeParameter

                        crParameterDiscreteValue.Value = System.DateTime.Now

                End Select





                crParameterValues.Add(crParameterDiscreteValue)





            Else





                Select Case crParameterField.ParameterValueKind

                    Case ParameterValueKind.BooleanParameter

                        crParameterDiscreteValue.Value = IIf(s(i + 2) = "0", False, True)

                    Case ParameterValueKind.CurrencyParameter

                        crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

                    Case ParameterValueKind.DateParameter

                        crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

                    Case ParameterValueKind.DateTimeParameter

                        crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

                    Case ParameterValueKind.NumberParameter

                        crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

                    Case ParameterValueKind.StringParameter

                        crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", " ", s(i + 2))

                    Case ParameterValueKind.TimeParameter

                        crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

                End Select





                crParameterValues.Add(crParameterDiscreteValue)

            End If





        Next









    End If

    

End Sub

水晶报表 Crystal Report 调用存储过程时出错 找不到表 ,解决方法。的更多相关文章

  1. Visual Studio 2012使用水晶报表Crystal Report

    原文:Visual Studio 2012使用水晶报表Crystal Report SAP在 2013年1月14日 released SAP Crystal Reports,developer ver ...

  2. 如何将水晶报表(Crystal Report)导入葡萄城报表

    当从旧的报表平台迁移到葡萄城报表工具时,意味着有大量的报表设计工作要重复去做,如果有一款工具能够在这些工具之间进行自由转换,就能省去报表开发几乎一半的工作量. 葡萄城报表为兼容其他报表控件,提供了简单 ...

  3. 用C#调用C++DLL提示找不到DLL解决方法【转】

    用C#调用自己写的C++ DLL(x64),总是提示找不到DLL,调试可以,发布release老是提示找不到DLL(dll文件确定存在) 原因:Visual C++的DLL分发方式没选:调试默认选择: ...

  4. 部署包含水晶报表Crystal Reports 的VS.NET2005应用程序[原创]

    要部署包含水晶报表Crystal Reports 的应用程序,您需要在生成解决方案之前创建一个安装项目,并且向应用程序中添加必要的合并模块. 1.打开 VS.NET2005 编程IDE. 2.在解决方 ...

  5. SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值

    我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked S ...

  6. EF 6 调用存储过程时返回多结果集和OUTPUT参数问题

    原文地址:http://q.cnblogs.com/q/56836/ 各位大侠,提问一个关于EF6调用存储过程时返回多结果集和OUTPUT参数问题 目前已经可以调用存储过程并且可以返回多个结果集. 但 ...

  7. 报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用

    一.水晶报表简介 Crystal Reports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表.水晶报表是业内最专业.功能最强的报表系统,它除了强大的报表功能外.最大的优势是实现了与绝 ...

  8. (转)创建DB2实例时出错,请大家帮忙解决

    创建DB2实例时出错,请大家帮忙解决 原文:http://bbs.chinaunix.net/thread-3601748-1-1.html 运行:$DB2DIR/instance/db2icrt   ...

  9. 架设传奇时打开DBC数据库出错或读取DBC失败解决方法

    架设传奇时打开DBC数据库出错或读取DBC失败解决方法 DBC右键-属性-高级-管理员身份运行 即可

随机推荐

  1. tab切换组件nz-tab

    <nz-card [nzBordered]="true" nzTitle="卡片标题"> <nz-card style="width ...

  2. E. Wrong Answer

    E. Wrong Answer time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  3. Less简介及安装

    CSS的短板 作为前端学习者的我们 或多或少都要学些 CSS ,它作为前端开发的三大基石之一,时刻引领着 Web 的发展潮向. 而 CSS 作为一门标记性语言,可能 给初学者第一印象 就是简单易懂,毫 ...

  4. HTTP的工作原理

    客户机与服务器建立连接后,发送一个请求给服务器,请求格式为:统一资源标识符.协议版本号.服务器收到请求的信息(包括请求行,请求头,请求体).服务器接收到请求后,给予相应的响应信息,格式为一个状态行(包 ...

  5. 20181225模拟赛 T1 color (转化思想,分拆思想)

    题目: 有⼀块有 n 段的栅栏,要求第 i 段栅栏最终被刷成颜色 ci .每⼀次可以选择 l, r 把第l . . . r 都刷成某种颜色,后刷的颜⾊会覆盖之前的.⼀共有 m 种颜色,雇主知道只需要用 ...

  6. NOIp十连测 涂色游戏

    [问题描述]小A 和小B 在做游戏.他们找到了一个n 行m 列呈网格状的画板.小A 拿出了p 支不同颜色的画笔,开始在上面涂色.看到小A 涂好的画板,小B 觉得颜色太单调了,于是把画板擦干净,希望涂上 ...

  7. python TCP协议与UDP协议

    1. TCP协议 / UDP协议 1.1 TCP协议 1.可靠.慢.全双工通信 2.建立连接的时候 : 三次握手 3.断开连接的时候 : 四次挥手 4.在建立起连接之后 发送的每一条信息都有回执 为了 ...

  8. 【BZOJ 1202】 [HNOI2005]狡猾的商人 (加权并查集)

    题链:http://www.lydsy.com/JudgeOnline/problem.php?id=1202 Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪 ...

  9. 【Codeforces 492D】Vanya and Computer Game

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 第一个人攻击一次需要1/x秒 第二个人攻击一次需要1/y秒 这两个数字显然都是小数. 我们可以二分最后用了多少时间来攻击. 显然这个是有单调性 ...

  10. java发送短信验证码的功能实现

    总结一下发送短信验证码的功能实现 (题外话:LZ是在腾讯云买的第三方(山东鼎信)短信服务平台的接口,1块钱20次的套餐来练手,哈哈,给他们打个广告,有需要的可以去购买哈,下面是购买链接短信服务平台购买 ...