1

Visual Studio 2010 + Sql Server 2008 を使用しています。

CR を使用してレポートを表示しようとしています。ローカル マシンでシステムを使用しようとすると、すべて問題ありません。

ストア プロシージャを使用してレポートを作成します。

この問題は、システムを別の PC に展開すると表示されます。次のことを求めるメッセージが表示されます。

サーバー: // RETRIEVES ORIGINAL Server(Local)// 正しくありません クライアント サーバー データベースを取得する必要があります: // RETRIEVES ORIGINAL DB(Local)// 正しくありません クライアント DB を取得する必要があります ユーザー名: 何も使用しませんユーザー、何のユーザー?パスワード: パスワードは使用しません。どのパスワードを使用しますか?

別の解決策を見ましたが、ユーザー名またはパスワードで使用する必要があるデータが見つかりません。Windows認証を使用してSQLにログインしています..

ありがとう。

よろしく。

編集..それが私のコードです..パラメーターを使用できません。エラーは発生しません。しかし、システムは私が送信したパラメーターを認識しません...

Dim NuevoReporte As New CReportNotaPorUsuario Dim contenido As String Dim ReportPath As String = My.Application.Info.DirectoryPath & "\CReportNotaPorUsuario.rpt"

        Dim ConexionCR As New CrystalDecisions.Shared.ConnectionInfo()
        contenido = Servicios.Funciones_Auxiliares.LeerArchivo(My.Application.Info.DirectoryPath & "\configuracion.txt")
        ConexionCR.ServerName = Servicios.Funciones_Auxiliares.TextoEntreMarcas(contenido, "<server>", "</server>")
        ConexionCR.DatabaseName = Servicios.Funciones_Auxiliares.TextoEntreMarcas(contenido, "<catalog>", "</catalog>")
        ConexionCR.IntegratedSecurity = True

        CrystalReportViewer1.ReportSource = ReportPath


        'NuevoReporte.SetParameterValue("@cod_usuario", cbousuario.SelectedValue)

        Dim field1 As ParameterField = Me.CrystalReportViewer1.ParameterFieldInfo(0)
        Dim val1 As New ParameterDiscreteValue()
        val1.Value = cbousuario.SelectedValue
        field1.CurrentValues.Add(val1)


        SetDBLogonForReport(ConexionCR)
4

1 に答える 1

0

開発環境と実稼働環境の間に別のサーバーとデータベースがあるようです。VS ソリューションを展開するときに、開発サーバーとデータベースではなく、運用サーバーとデータベースが参照されるようにする必要があります。これを達成する方法を見つけるのに役立つチュートリアルがいくつかあります。チェックアウト:

http://msdn.microsoft.com/en-us/library/dd193254(v=vs.100).aspx

Visual Studio 2010 データベース プロジェクトのさまざまな環境への展開

http://www.asp.net/web-forms/tutorials/deployment/advanced-enterprise-web-deployment/customizing-database-deployments-for-multiple-environments

編集:これは、質問で最初に述べられたものとは異なる問題に発展したようです。CR の接続文字列をテキスト ファイルから動的に取得するには、まずテキスト ファイルを読み取り、サーバー名とデータベース名を変数に入れる必要があります。テキストファイルを読み取ると、次のようなものを使用できますが、string text = File.ReadAllText(@"C:\Folder\File.txt");サーバー名とデータベース名を変数に抽出する必要があります。次に、接続文字列で変数を使用するには、 と を使用しConnectionInfo.Servername = variable1;ますConnectionInfo.DatabaseName = variable2

于 2013-11-11T15:59:26.463 に答える