2015-03-10 3 views
0

У меня есть база данных, которую я знаю по факту, с которой я могу подключиться. Я использовал odbc -> я попал в систему DSN -> я включил все свои учетные данные, и он может протестировать connect ok, но всякий раз, когда я пытаюсь обновить базу данных в Data Connections в визуальных студиях, она заявляет, что Server Explorer не может выполнить это операция. При установлении соединения с SQL-сервером произошла ошибка, связанная с сетью или экземпляром. Я проверил имя пользователя и пароль в строке подключения, и все правильно. Есть ли что-нибудь еще, что можно было бы сделать, чтобы попытаться соединиться с визуальными студиями, которые я могу забыть. Строка в web.config является:Не удается подключиться к базе данных с помощью визуальных студий

<add name="DefaultConnection" connectionString="Data Source=*********; 
Initial Catalog=*******Dev;Persist Security Info=True;User 
ID=********;Password=**********" providerName="System.Data.SqlClient" /> 

Я попытался отключить брандмауэр, а

, когда я запускаю код не будет открыт, что пользователь предложил. AT код: cnn.Open(); Это сбой. Сообщение, которое оно дает:

>Can not open connection ! System.Data.SqlClent.SqlException (Ox80131904): A network-related or instance-specific error occurred while establishing a connection to SQL 
Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: 
Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) System.ComponentModel.Wn32Exception (Ox80004005): The netvvork path was not 
found 
at System. Data.SqlClent.SqIInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action' 1 wrapCloseInAction) 
at System. Data.SqlC5ent.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 
at System.Data.SqlClent.TdsParser.Connect(ServerInfo serverlnfo, SqIInternalConnectionTds connHandler, Boolean ignoreSniOpenTlmeout, Int64 timerExpire, Boolean 
encrypt, Boolean trustServerCert, Boolean integratedsecurity, Boolean wthFailover) 
at System.Data.SqlClent.SqIInternalConnectionTds.AttemptOneLogin(ServerInfo serverlnfo, String newPassword, Securestring newSecurePassword, Boolean 
ignoreSniOpenTlmeout, TimeoutTlmer timeout, Boolean wthFailover) 
at System.Data.SqlClent.SqIInternalConnectionTds.LoginNoFailover(ServerInfo serverlnfo, String newPassword, Securestring newSecurePassword, Boolean 
redirecteduserlnstance, SqlConnectionString connectionoptions, SqlCredential credential, TimeoutTlmer timeout) 
at System. Data.SqlClent.SqIInternalConnectionTds.OpenLoginEnfist(TlmeoutTlmer timeout, SqlConnectionString connectionoptions, SqlCredential credential, String 
newPassword, Securestring newSecurePassword, Boolean redirecteduserlnstance) 
at System. Data.SqlClent.SqIInternalConnectionTds..ctor(DbConnectionPooIIdentity identity, SqlConnectionString connectionoptions, SqlCredential credential, Object 
providerlnfo, String newPassword, Securestring newSecurePassword, Boolean redirecteduserlnstance, SqlConnectionString userConnectionOptions, SessionData 
reconnectSessionData) 
at System. Data.SqlClent.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object pooGroupProviderInfo, 
DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions useroptions) 
at System.Data.Provider3ase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningobject, DbConnectionOptions options, 
DbConnectionPoolKey poolKey, DbConnectionOptions useroptions) 
at System.Data.Provider3ase.DbConnectionPool.CreateObject(DbConnection owningobject, DbConnectionOptions useroptions, Dbconnectionlnternal oldConnection) 
at System.Data.Provider3ase.DbConnectionPool.UserCreateRequest(DbConnection owningobject, DbConnectionOptions useroptions, Dbconnectionlnternal 
oldConnection) 
at System.Data.Provider3ase.DbConnectionPool.TryGetConnection(DbConnection owningobject, Ulnt32 waitForMuttipleObjectsTmeout, Boolean allowCreate, Boolean 
ontyOneCheckConnection, DbConnectionOptions useroptions, Dbconnectionlnternal& connection) 
at System.Data.Provider3ase.DbConnectionPool.TryGetConnection(DbConnection owningobject, Taskcompletionsource' 1 retry, DbConnectionOptions useroptions, 
Dbconnectionlnternal& connection) 
at System.Data.Provider3ase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, Taskcompletionsource' 1 retry, DbConnectionOptions 
useroptions, Dbconnectionlnternal oldConnection, Dbconnectionlnternal& connection) 
at System. Data. Provider3ase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, 
Taskcompletionsource' 1 retry, DbConnectionOptions useroptions) 
at System. Data. Provider3ase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, 
Taskcompletionsource' 1 retry, DbConnectionOptions useroptions) 
at System. Data.SqlC5ent.SqlConnection.TryOpenInner(TaskCompletionSource' 1 retry) 
at System. Data.SqC5ent.SqlConnection.TryOpen(TaskCompletionSource' 1 retry) 
at System. Data.SqlClent.SqlConnection.Open() 
ClientConnectionId:00000000-0000-0000-00000000000 
+0

Это может показаться немного глупым. Вы пытались перезапустить Visual Studio? Иногда вещи просто не работают, когда нужно. Обычно перезагрузка исправляет: –

+0

Покажите свой код, и вы можете получить некоторую помощь. – Fred

+0

Ваше сообщение об ошибке указывает на использование именованных каналов. Возможно, именованные каналы отключены на стороне сервера. Возможно, ваш ODBC использует TCP/IP вместо именованных каналов. Вы пробовали использовать UDL вместо ODBC для тестирования? –

ответ

0

попробуйте .. как это. и найти ошибку, что она говорит ???

string connetionString = null; 
     SqlConnection cnn ; 
     connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password" 
     cnn = new SqlConnection(connetionString); 
     try 
     { 
      cnn.Open(); 
      MessageBox.Show ("Connection Open ! "); 
      cnn.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Can not open connection ! "); 
     } 
+0

Может ли это показать сообщение об исключении? – Fred

+0

да, почему бы и нет? , если он не подключен, то он отображается в блоке catch. –

+0

, когда я запускаю код, он не открывается. AT код: cnn.Open(); – zissler

0

Я использовал UDL, и это сработало. Мне грустно говорить, но ответ был очень прост. Я должен был сделать это:

Data Source = Server_Name.com 

вместо Server_Name. Это настоящая база данных, поэтому я пытался ее защитить, но вот в чем проблема! Большое спасибо за то, что он сказал мне, что это проблема с именем, вот что помогло мне разобраться в этом. Спасибо пользователю/Nick за помощь в решении проблемы

Смежные вопросы