我试图运行一个程序,从远程SQL服务器获取数据,它适用于另一个远程站点的同事,但是当我运行该程序时,调试器说Sql_Reader返回null。SQL错误:26 - 错误定位服务器/实例指定
我可以ping和连接到远程sql服务器。实例是正确的,以及服务器上的防火墙设置为http://blogs.msdn.com/b/sql_protocols/archive/2007/05/13/sql-network-interfaces-error-26-error-locating-server-instance-specified.aspx然而,当我运行一个程序从sql服务器获取数据时,存在错误,表示远程服务器未找到或无法访问。
这是连接字符串,它是在GetConnectionString方法的连接字符串。
return @"Data Source= 2.2.2.2\SQLEXPRESS; Persist Security Info=False;User ID=myusername;Password=mypassword;Initial Catalog=SomeDataStructure;";
以下错误发生在具有sql_Connection.Open()的行上;
SqlException是未处理的。 建立与SQL Server的连接时发生网络相关或实例特定的错误。服务器未找到或无法访问。验证实例名称是否正确,并将SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:26 - 错误定位服务器/实例指定)
// Body of the method
str_Query = "SELECT " + dict_SearchData["FieldName"] + " FROM " + dict_SearchData["Table"] +
" WHERE " + dict_SearchData["IndexColumn"] + " = '" + dict_SearchData["IndexRow"] + "';";
using (SqlConnection sql_Connection = new SqlConnection(dict_SearchData["ConnectionString"]))
{
SqlCommand sql_Command = new SqlCommand(str_Query, sql_Connection);
sql_Connection.Open();
SqlDataReader sql_Reader = sql_Command.ExecuteReader();
try
{
sql_Reader.Read();
str_FieldValue = sql_Reader[0].ToString();
}
catch (System.InvalidOperationException)
{
//ignore the exception
}
finally
{
// Always call Close when done reading.
sql_Reader.Close();
}
}
有许多可能原因的常见错误消息。 http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql- server-microsoft-sql-server-error/ –
SQL Server是否允许远程连接?另外是配置为使用SQL Server身份验证的实例? – Milen