0

以下のコードをご覧ください。かなり自明だと思います。VS2010をCrystalReportsforVS2010と一緒に実行しています。クレイジーなことは、その行で例外を生成しない同様のコードを持つ同様のプロジェクトがあることです...したがって、2つのプロジェクトの違いを理解しようとしていますが、これまでのところ空になっています。

これを修正する方法についてのアドバイスやアイデアをありがとう!

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ディレクトリにある他のいくつかのCrystalDLLと一緒に。

4

1 に答える 1

1

試す:

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

2 つのバックスラッシュが 1 つのバックスラッシュに置き換えられ、付随する @ 記号がそれらに付随していることに注意してください。バックスラッシュを二重にするよりもこの方法を好みます。これは、文字列の書式設定を明示的に制御するためです。

于 2012-04-19T22:19:01.943 に答える