生产环境没有获取sql数据集

时间:2015-04-29 09:16:35

标签: asp.net

我的asp.net代码不是从生产环境中的sql数据库获取数据集。代码不返回任何记录,但相同的代码在开发环境中正常工作。我必须从获取的数据集中提供水晶报告。

这是我的代码:

Private Sub GenerateReport1(sql1 As String)
    Dim crReportDocument = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
    Try
        Dim ReportName As String = "KPIEstOverallReport.rpt"

        Dim ds As New DataSet()
        ds = GetDataSet(sql1)

        'ds = DataAccessHelper.DataAccess.ExecuteDataSet(DataAccessHelper.DataAccess.ConnectionString, "Usp_BMS_KPI_Estimation_Performance_Report ", CommandType.StoredProcedure, param)

        Session("dsCrstalReport") = ds
        crReportDocument.FileName = Server.MapPath("~//KPIEstOverallReport.rpt")

        crReportDocument.SetDataSource(ds)

        Session("ReportDoc") = crReportDocument

        If ds IsNot Nothing AndAlso ds.Tables(0).Rows.Count > 0 Then
            ScriptManager.RegisterStartupScript(Me, GetType(String), "ShowReport", "window.open('CrystalReportViewer.aspx?','_blank','');", True)
        Else
            lblMsg.Text = "No records found..!"
            'ScriptManager.RegisterStartupScript(Me, GetType(String), "No records Found.", "alert('No records found.');", True)
        End If

    Catch ex As Exception
        lblMsg.Text = ex.Message
    End Try

End Sub

1 个答案:

答案 0 :(得分:0)

您的代码无法提供有关该问题的足够信息。

如果您简化代码,您将获得

Dim ds As New DataSet()
ds = GetDataSet(sql1)
If (ds IsNot Nothing AndAlso ds.Tables(0).Rows.Count > 0) Is False Then
    lblMsg.Text = "No records found..!"
End If

你得到"没有找到记录..!"因为ds是Nothing或者Tables(0)没有recods。

只有当sql1没有返回任何记录或者GetDataSet方法中有一个可能返回Nothing的错误时,才会发生这种情况。

要进行故障排除,您需要调试GetDataSet()并查看其功能。