2012-04-19 33 views
0

請參閱下面的代碼。我認爲這很自我解釋。我使用VS2010的Crystal Reports運行VS2010。瘋狂的事情是我有一個類似的項目與類似的代碼,不會在該行生成異常...所以我一直試圖找出兩個項目之間的差異,但到目前爲止已空。使用Report.DataSourceConnections時:「對象引用未設置爲對象的實例」

感謝您的任何建議或想法如何解決這個問題!

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"/> 

與其他一些水晶的DLL一起在我的BIN目錄中。

回答

1

嘗試:

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

通知更換單者雙反斜槓,以及隨之而來的@符號和他們一起去。我更喜歡這種方式來加倍反斜槓,因爲那樣我明確地控制了字符串格式。

相關問題