2011-03-08 118 views
0

嘿,大家好。 所以,有ac#窗体窗体,使用水晶报告和sql express后端和一个水晶报告,从远程sql服务器08拉。当试图从本地数据库拉,我得到'未能打开连接',但报告从远程连接正常加载。Crystal报告未能打开连接

在开发机器上一切正常,它在虚拟机上测试失败。虚拟数据库是使用开发数据库的(当前)备份创建的。这里是连接的代码...

private void frm_cr_Visit_Load(object sender, EventArgs e) 
    { 
     this.Text = "Visit Report - Version:" + Application.ProductVersion; 
     Cursor.Current = Cursors.WaitCursor; 
     ReportDocument cryRpt = new ReportDocument(); 
     cryRpt.Load(@"C:\Data\MRE\crVisitBySubVisitID.rpt"); 
     cryRpt.SetDatabaseLogon("login", "password", @"localserver\sqlexpress", "DBname"); 
     cryRpt.SetParameterValue("@VisitID", intVisitID); 
     cryRpt.SetParameterValue("@FullName", GlobalVariables.GlobalFullName); 
     crv.ReportSource = cryRpt; 
     crv.Refresh(); 
     Cursor.Current = Cursors.Default; 
    } 

该程序中的所有其他数据库函数工作。是什么导致了问题,我该如何解决?

谢谢!
dave k

回答

0

发现我的问题,它必须与SQL服务器设置为只有Windows身份验证,而不是和SQL登录身份验证。

doh!

0

如果每个其他函数都工作并且数据库细节相同,请检查用户的权限,因为这是连接问题的常见原因(假设认证显然返回该错误),还请检查url为(没有关于服务器名称的进一步信息)假定“localserver”可能应该是“localhost”,显然如果HOSTS文件或服务器名称被设置为使得“localserver”工作不理会。

+0

感谢您的回复,抱歉,忘记关闭此。最后找到我的答案与更多的研究...在我正在测试这个虚拟机上,SQL Server 08 Express的安装是一个无提示安装,并默认只为Windows身份验证。访问本地数据库的程序使用SQL登录。 – 2011-03-14 18:26:21