Страница 1 из 1

Sql server 2008 error

СообщениеДобавлено: 24 янв 2013, 21:29
DemonHawk
Всем добрый!

Пытаюсь подключиться к базе MS SQL 2008 Express из Юнити.
Через Шарп:
Синтаксис:
Используется csharp
public class MainMenu : MonoBehaviour {
       
        private IDbConnection dbcon;
        void MbShop () {
                string connectionString = "Server=ECM-HAWK;" + "Database=Bd_Net;" + "User ID=Login1;" + "Password=Login1;";

            SqlConnection conn = new SqlConnection(connectionString);
            try
            {
                // Открываем подключение
                conn.Open();
            }
            catch (SqlException e)
            {
                // Выводим сообщение об ошибке в случае возникновения исключения
                Debug.Log("Ошибка: " + e);
            }
            finally
            {
                // Закрываем подключение
                conn.Close();
                Debug.Log("Подключение закрыто.");
            }
        }
 


Компилируется нормально, но при работе выдается ошибка:
System.Data.SqlClient.SqlException: Server does not exist or connection refused. ---> Mono.Data.Tds.Protocol.TdsInternalException: Server does not exist or connection refused. ---> System.Net.Sockets.SocketException: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение.

at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in <filename unknown>:0
at System.Net.Sockets.Socket+Worker.Connect () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Mono.Data.Tds.Protocol.TdsComm..ctor (System.String dataSource, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion tdsVersion) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.Tds..ctor (System.String dataSource, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion tdsVersion) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.Tds70..ctor (System.String server, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion version) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.Tds80..ctor (System.String server, Int32 port, Int32 packetSize, Int32 timeout) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.TdsConnectionPoolManager.CreateConnection (Mono.Data.Tds.Protocol.TdsConnectionInfo info) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.TdsConnectionPool.GetConnection () [0x00000] in <filename unknown>:0

Уже мозг себе съел...

Помогите люди добрые - как к базе подцепиться? ^:)^

Re: Sql server 2008 error

СообщениеДобавлено: 24 янв 2013, 21:47
DbIMok
DemonHawk писал(а):"Server=ECM-HAWK;"

возможно имя не резолвится в ip адрес?
DemonHawk писал(а):Server does not exist or connection refused

возможно порт на сервере закрыт файрволом?
DemonHawk писал(а):at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in <filename unknown>:0

хм, requireSocketPolicy, что же это такое? http://docs.unity3d.com/Documentation/M ... ndbox.html

интересно увидеть распечатку connectionString. посмотрите варианты форматов http://forum.unity3d.com/threads/9391-MS-SQL-connection. попробуйте скопировать необходимые для подключения библиотечки в папку проекта Plugins
ну и вообще, если это не программа сервер, то такой подход (прямой доступ к базе) чреват проблемами.

Re: Sql server 2008 error

СообщениеДобавлено: 24 янв 2013, 21:54
seaman
sql сервер с именем ECM-HAWK в сети есть?
Я с SQL микрософтовским не работал, но в МСДН сервер указывается не так. Нужно перед ним протокол указывать tcp:ECM-HAWK

Re: Sql server 2008 error

СообщениеДобавлено: 24 янв 2013, 22:12
DemonHawk
Строка подключения правильная, этот же код запускал в Visual Studio и все работает, сервер с именем ECM-HAWK, база данных найдена,

Re: Sql server 2008 error

СообщениеДобавлено: 24 янв 2013, 22:16
DemonHawk
возможно порт на сервере закрыт файрволом?

какое порт надо открыть? или как определить какой порт надо открыть?

Re: Sql server 2008 error

СообщениеДобавлено: 24 янв 2013, 23:09
Alergy
DemonHawk писал(а):
возможно порт на сервере закрыт файрволом?

какое порт надо открыть? или как определить какой порт надо открыть?

если по умолчанию 3306, но если вы утверждаете, что другое приложение подключается, то порты ни при чем.

Re: Sql server 2008 error

СообщениеДобавлено: 24 янв 2013, 23:17
DbIMok
DemonHawk писал(а):Строка подключения правильная

но вы продолжаете ее скрывать?
DemonHawk писал(а):этот же код запускал в Visual Studio и все работает

так я и не сомневаюсь, что работает. но это на .net, а у нас mono
Alergy писал(а):какое порт надо открыть? или как определить какой порт надо открыть?

по умолчанию 1433. вам лень в гугле пару слов набрать?

Re: Sql server 2008 error

СообщениеДобавлено: 24 янв 2013, 23:43
Alergy
DbIMok писал(а):по умолчанию 1433. вам лень в гугле пару слов набрать?

сори перепутал с мускулом

Re: Sql server 2008 error

СообщениеДобавлено: 24 янв 2013, 23:45
DemonHawk
Строка подключения такая:
string connectionString = "Server=ECM-HAWK;" + "Database=Bd_Net;" + "User ID=Login1;" + "Password=Login1;";

Она была в коде, извиняюсь если не правильно оформил или чтото ещё.
А поводу номера порта, я гуглил и нашел этак вариантов 30 точно, портов которые по умолчанию могут стоять, хотя всех их уже открыл в том числе и тут предложенные варианты.

Re: Sql server 2008 error

СообщениеДобавлено: 25 янв 2013, 00:55
DbIMok
мы за вас проблему не решим. мы можем только дать возможные направления для поиска. разбираться и пробовать все равно вам. насчет строки мой косяк, разбиение строки по невнимательности было воспринято как использование в ней переменных. поэтому и просил ее "распечатаку"

Re: Sql server 2008 error

СообщениеДобавлено: 12 май 2018, 00:23
dmitryzenevich
Здесь я подробно ответил https://ru.stackoverflow.com/a/826635/281693

Re: Sql server 2008 error

СообщениеДобавлено: 18 май 2018, 11:26
Dewa1s
2013 год у последнего комменатрия тут, июнь 2017 на SO #-o некропост про некропост, приехали