簡體   English   中英

使用Report.DataSourceConnections時:“對象引用未設置為對象的實例”

[英]When using Report.DataSourceConnections: “Object reference not set to an instance of an object”

請參見下面的代碼。 我認為這很容易解釋。 我正在運行VS2010和VS2010的Crystal Reports。 瘋狂的事情是我有一個具有類似代碼的類似項目,該代碼不會在該行上生成異常...因此,我一直在試圖弄清這兩個項目之間的區別,但到目前為止卻是空的。

感謝您提供任何有關解決此問題的建議或想法!

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;

public partial class Reports : System.Web.UI.Page
{
  ReportDocument rptSP;


protected void Page_Load(object sender, EventArgs e)
{
   rptSP = new ReportDocument();
   string rptPath = Server.MapPath(Request.QueryString["rptname"].ToString());
   rptSP.Load(rptPath, 0);
   rptSP.DataSourceConnections["MyServer\\MyInst", "MyDB"].SetConnection("MyServer\\MyInst", "MyDB", "MyUsername", "MyPass");
//The above line causes an excepton while debugging on my local development machine

如果在我的aspx頁面上有問題,我將具有以下內容:

<%@ Register Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web" TagPrefix="CR" %>

然后在我的web.config中,我有:

            <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>

以及我的BIN目錄中的其他一些Crystal DLL。

嘗試:

rptSP.DataSourceConnections[@"MyServer\MyInst", "MyDB"].SetConnection(@"MyServer\MyInst", "MyDB", "MyUsername", "MyPass");

請注意,將雙反斜杠替換為單反斜杠,並將附帶的@符號替換為反斜杠。 我更喜歡這種方式將雙反斜杠加倍,因為這樣我就可以顯式控制字符串格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM