1

我正在使用 Visual Studio 2010 + Sql Server 2008。

我正在尝试使用 CR 显示我的报告。当我尝试在本地计算机上使用该系统时,一切正常。

我使用存储过程来创建报告。

当我在另一台 PC 上部署系统时出现此问题。出现一条消息,要求:

服务器://检索原始服务器(本地)//它不正确我需要获取客户端服务器数据库://检索原始数据库(本地)//它不正确我需要获取客户端数据库用户名:我不使用任何用户,什么用户?密码:我没有使用任何密码,什么密码?

我看到了另一种解决方案,但我找不到我必须在用户名或密码中使用的数据。我使用 Windows 身份验证登录到 sql ..

谢谢。

问候。

编辑..这是我的代码..我不能使用参数,我没有收到任何错误。但系统无法识别我发送的参数...

将 NuevoReporte 调暗为新的 CReportNotaPorUsuario 将 contenido 调暗为字符串 将 ReportPath 调暗为 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 回答