2012-10-23 35 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); 
    }