Вопрос:

SqlConnection не может открыть соединение

c# asp.net database-connection

99 просмотра

1 ответ

981 Репутация автора

Что у меня есть

  1. Аккаунт в http://www.freesqldatabase.com
  2. База данных ( DB_DATABASE var в моем приложении asp.net)
  3. Пользователь и пароль для БД ( DB_USER , DB_PASS )
  4. URL хоста (sql4.freesqldatabase.com [ DB_SERVER ])
  5. Каталог плюс три таблицы ( DB_CATALOG )
  6. Порт ( DB_PORT )

К чему я стремлюсь

Для подключения из моего приложения asp.net, к моей базе данных.

Что я пробовал

Я пытался построить SqlConnection, так же, как:

SqlConnection con = new SqlConnection(@"Data Source=(" + DB_SERVER + "\\" + DB_DATABASE + "," + DB_PORT + ");Initial Catalog=" + DB_CATALOG + ";UID=" + DB_USER + ";PWD=" + DB_PASS + ";");

Я использовал в DB_DATABASEкачестве имени экземпляра, но я не уверен в этом (любое объяснение, чтобы разъяснить мне этот беспорядок, будет оценено!)

Но я также пытался без него:

SqlConnection con = new SqlConnection(@"Data Source=(" + DB_SERVER + "," + DB_PORT + ");Initial Catalog=" + DB_CATALOG + ";UID=" + DB_USER + ";PWD=" + DB_PASS + ";");

И несколько опций, кроме этих, пытаются изменить строку подключения, но пока никто не работал = (

Что я получаю

Ну, когда я пытаюсь открыть соединение, я получаю следующее исключение (я пытался найти здесь какие-либо полезные данные, но я еще не привык к этому ...):

   en System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   en System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover)
   en System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
   en System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
   en System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
   en System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData)
   en System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   en System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   en System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   en System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   en System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   en System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   en System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   en System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   en System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   en System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
   en System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   en System.Data.SqlClient.SqlConnection.Open()
   en Gallery.Gallery.registerNewUser(String username, String encripted_password)

Плюс, узнал

На http://www.freesqldatabase.com/category/net/ они сказали, что сказали:

Из-за ошибки в некоторых коннекторах MySQL возвращается ошибка «Несинхронизировано с сервером».

Чтобы решить эту проблему, используйте другую версию коннектора MySQL.

Но так как я ничего не видел об этом в трассировке стека исключений, я не уверен, что на меня это влияет (плюс это новости 2011 года).

Я сделал что-то не так при построении соединения? Как я могу это исправить?

Заранее спасибо!

Автор: Btc Sources Источник Размещён: 24.06.2015 07:22

Ответы (1)


1 плюс

410 Репутация автора

Решение

Все объекты, начинающиеся с «Sql», такие как «SqlConnection», «SqlCommand» и т. Д., Созданы для SQL Server. Очевидно, вы используете MySQL, поэтому вам нужен другой поставщик: https://dev.mysql.com/downloads/connector/net/

Добавив этого провайдера в качестве ссылки в свой проект, вы сможете использовать «MySqlConnection», «MySqlCommand» и т. Д.

Автор: DotNetMatt Размещён: 24.06.2015 07:32
Вопросы из категории :
32x32