2017-06-20 193 views
0

我与代码链接的服务器读取一个表,但是我recived此消息: enter image description hereSQL 2008 - 链接服务器

所以,我觉得我已经做了所有我可以。为什么我的代码不起作用?

这是我的连接和查询代码的一部分。

public ObservableCollection<Model_Societa> CaricaComboSocieta(string sServer, string sDbSorgente, string StrConnectionString) //Popola combo SOCIETA 
{ 

    StrConnectionString = "Data Source=HP-5CD6071;Initial Catalog=DB_TEST;User ID=MyUser;Password=MyPassword;"; 

    string Sql = "SELECT Soc_Cod, Sc_Rac FROM [HP-5CD6071].[DB_TEST].[dbo].[P00_So]"; 

    ObservableCollection<Model_Soc> res = new ObservableCollection<Model_Soc>(); 

    try 
    { 
     using (SqlConnection connection = new SqlConnection(StrConnectionString)) 
     { 
      connection.Open(); 
      SqlCommand command = new SqlCommand(Sql, connection); 

      SqlDataReader reader = command.ExecuteReader(); 
      while (reader.Read()) 
      { 
      } 
      .... 

这是我的链接服务器

EXEC sp_addlinkedserver @server='HP-5CD6071' 
EXEC sp_addlinkedsrvlogin 'HP-55CD6071', 'false', NULL, 'MyUSER', 'MyPassword' 

enter image description here enter image description here

我的服务器连接子 “sys.serverenter image description here

+0

您是否尝试在SQL Mgmt Studio中运行您的查询?它工作吗?如果是这样,为什么不创建一个存储过程,而是从你的代码中调用它呢? –

+0

HP-5CD6071或HP-5CD6071CYP? –

回答

0

改变你的主连接基本服务器。您的查询是正确的,但你要直接连接到链接服务器:

StrConnectionString = "Data Source=HP-5CD6071... <--This should be your main server 

这将保持不变,使用4部分命名方式连接到链接的服务器,从服务器上面:

SELECT Soc_Cod, Sc_Rac FROM [HP-5CD6071].[DB_TEST].[dbo].[P00_So] 
+0

嗨亚伦,你能告诉我正确的连接字符串吗? – Alan392

+0

@ Alan392那它取决于你想做什么。现在,您的连接字符串想要直接连接到链接的服务器。即。 “HP-5CD6071”是连接的服务器,也是您要连接的服务器。这意味着什么,你根本没有使用链接服务器,只是直接连接到'HP-5CD6071'。如果您想使用链接服务器,为了权限或任何原因,请将连接字符串的数据源更改为*源服务器名称*,也就是您在上面设置链接服务器的名称。 –

+0

它看起来像是'RO ...'的东西。你已经把它抹去了。将其用于连接字符串。 –