2011-03-08 111 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