2012-10-23 38 views
1

當我執行此代碼:如何設置數據庫與AdomdConnection

AdomdConnection con = new AdomdConnection("Data Source=MyServer;User ID=MyDomain\\MyUserName;Password=MyPassword"); 
con.Open(); 

con.ChangeDatabase("Analysis Services Project1"); 

我得到這個異常:

無論是用戶,MYDOMAIN \ MyUserName輸入$,不必訪問 分析服務Project1數據庫,或數據庫不存在。

數據庫名稱來自使用Microsoft SQL Server Management Studio查看服務器。如果我打開服務器上的屬性並轉到安全部分,我的帳戶將被列爲服務器管理員。在管理工作室中,我可以看到數據源,多維數據集和執行mdx查詢。

爲什麼我不能在代碼中得到這個異常?

回答

0

那條線會導致錯誤? 我想你必須在你的連接字符串上的目錄信息。嘗試addind

Catalog=Analysis Services Project1 

到您的con字符串。

另外,Analysis Services Project1似乎是項目名稱?你確定這是數據庫名稱嗎?

+0

在我的代碼con.ChangeDatabase(」 .....線拋出異常。如果我使用目錄= .. 。在連接字符串中,我仍然得到錯誤,它只是延遲了,直到我嘗試讀取某些東西。我相信「Analysis Services Project1」是數據庫名稱,因爲它是直接列在Sql Management Studio中的數據庫下 –

0

首先 添加了引用的Microsoft.AnalysisServices.AdomdClient.dll

strCon = "Data Source=DBserverServerName;Integrated Security=SSPI;Initial Catalog=DBName;"; 
AdomdConnection con = new AdomdConnection("connectionstring"); // connect DB con.Open(); AdomdCommand cmd = new AdomdCommand("MDX query", con); //query  
AdomdDataReader reader = cmd.ExecuteReader(); //Execute query 
while (reader.Read()) // read 
    { 
     Data dt = new Data(); // custom class 
     dt.Gender = reader[0].ToString(); 

     dt.Eid = reader[1].ToString(); 
     dt.salary = reader[2].ToString(); 
     data.Add(dt); 
    }