大家好 . 因此,有一个ac#windows表单,它使用水晶报告和一个sql express后端和一个从远程sql server 08中提取的水晶报告 . 当试图从本地数据库中取出时,我得到一个“未能打开连接”但报告从远程连接加载正常 .
一切都在开发机器上运行良好,在虚拟机上进行测试时失败了 . 虚拟机上的DB是使用开发DB的(当前)备份创建的 . 这是连接的代码......
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;
}
程序中的所有其他DB功能都可以工作 . 是什么导致了这个问题,我该如何解决?
谢谢!
戴夫克
2 回答
如果每个其他函数都有效并且db详细信息相同,请检查用户的权限,因为这是连接问题的常见原因(假设认证显然会返回该错误),还要检查url(没有关于服务器名称的更多信息)假设“localserver”可能应该是“localhost”,显然如果设置了HOSTS文件或服务器名称,那么“localserver”可以忽略它 .
发现我的问题,它与仅为Windows身份验证设置的sql server有关,而不是那个和sql登录身份验证 .
卫生署!