gpt4 book ai didi

c# - 使用 C# 和 MySQL 的 Crystal 报表。正在设计但运行时总是登录失败

转载 作者:行者123 更新时间:2023-11-29 23:46:08 25 4
gpt4 key购买 nike

所以首先。我使用的是 Windows 8.1 64 位、Visual Studio 2013 32 位、MySQL(使用 xampp 安装)和最新版本的 Crystal Report(截至目前,CRforVS_13_0_10,与 VS2013 兼容)还有 mysql-odbc-connector-32bit,我尝试使用 64,但我的数据库不会显示(了解更多附加信息)

这是怎么回事。

我能够使用 ODBC 连接我的数据库(32 位,因为我无法使用 64 位驱动程序看到它)

它在设计上完美运行,我还可以使用预览按钮预览实时数据。

现在,问题发生在运行时。当我运行我的应用程序并调用报表来设置参数并刷新它时,将提示“数据库登录”,并且不会接受任何凭据。

这是我的代码:(我从别人那里看到的)

crOfficialList.SetParameterValue("listNumber", listInformation[1]);
crystalReportViewer1.ReportSource = crOfficialList;

crystalReportViewer1.Refresh();

我最终得到了无限的“数据库登录”提示。

<小时/>

我还尝试使用以下代码设置 ConnectionInfo:

            ReportDocument rdOfficialList = new ReportDocument();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables;

rdOfficialList.Load(Application.StartupPath + "/Reports/crOfficialReceipt.rpt");

crConnectionInfo.ServerName = "localhost";
//also tried using the name i set on DSN which is localServer, but it didnt work, It will only prompt unlimited "database login".

crConnectionInfo.DatabaseName = "myDB";
crConnectionInfo.UserID = "root";
crConnectionInfo.Password = "";

CrTables = rdOfficialList.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}

ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

crParameterDiscreteValue.Value = listInformation[1];
crParameterFieldDefinitions = rdOfficialList.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["officialReceiptNumber"];
crParameterValues = crParameterFieldDefinition.CurrentValues;

crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);

crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crystalReportViewer1.ReportSource = rdOfficialList;
crystalReportViewer1.Refresh();
<小时/>

在这种情况下,我收到一条错误消息“无法打开连接”。你们觉得怎么样?谢谢。:)

最佳答案

我终于明白了。已经通过传递连接字符串而不是创建 DSN 解决了​​这个问题。

在连接字符串中,我包含了驱动程序版本

这是连接字符串:

DRIVER={MySQL ODBC 5.3 ANSI 驱动程序};服务器=我的服务器名称;数据库=我的数据库; UID=myUserId;PASSWORD=密码;选项=3

您可以通过数据库专家->创建新连接->输入连接字符串来配置您的报告。不要忘记应用您的凭据。谢谢。

关于c# - 使用 C# 和 MySQL 的 Crystal 报表。正在设计但运行时总是登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25932870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com