Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > BLToolkit & Oracle


Автор: Flap 28.11.2012, 09:46
Доброе утро всем.

Помогите решить проблему. 
Вроде все делаю по инструкции:
С подобной строкой спокойно конекчусь к бд из sqldeveloperа, из делфи (через odac). Все довольны, никто не ругается
BLToolkit почему-то не хочет.

Код


        void Button_Click(object sender, RoutedEventArgs e)
        {
            string conString="Data Source=oks/oks@db09-gyr:1521:OKS";
            var p = new BLToolkit.Data.DataProvider.OdpDataProvider();
            p.ParameterPrefix = null;
            DbManager.AddDataProvider(p);
            DbManager.AddConnectionString("Oracle", conString);

            NPS n;
            using (DbManager db = new DbManager("Oracle"))
            {
                n = db.SetCommand(@"
                                 SELECT 
                                     p.NPSID,
                                     p.NAME,
                                     p.RNUID,
                                     p.SORTORDER,
                                 FROM NPS p
                                 WHERE p.NPSID = :Id",
                        db.Parameter("Id", 4))
                    .ExecuteObject<NPS>();
            }            



Цитата

Но этот код выдает такое сообщение.
BLToolkit.Data.DataException: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: SQL Network Interfaces, error: 25 - Недопустимая строка подключения) ---> System.Data.SqlClient.SqlException: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: SQL Network Interfaces, error: 25 - Недопустимая строка подключения)


Спасибо.

Автор: Cynede 28.11.2012, 11:55
zzz

Автор: Flap 28.11.2012, 12:09
Да я уже по всякому пробовал.
Пока сработал вот такой вариант:

Код

    System.Data.SqlClient.SqlConnectionStringBuilder sb = new System.Data.SqlClient.SqlConnectionStringBuilder();
            
            sb.DataSource = string.Format("(DESCRIPTION = (ADDRESS = " +
                "(Protocol = tcp)(Host={0})" + "(PORT = 1521))(CONNECT_DATA = " 
                + "(SERVICE_NAME={1})))", "db09-gyr", "OKS"); // строка, задающая параметры соединения
            sb.UserID="oks";
            sb.Password="oks";
            
            string conString = sb.ConnectionString; 
            var p = new BLToolkit.Data.DataProvider.OdpDataProvider();
            p.ParameterPrefix = null;
            DbManager.AddConnectionString(conString);
            DbManager.AddDataProvider(p);

            NPS n;
            using (DbManager db = new DbManager(p, conString))
            {
                
                db.SetCommand(@"
                                 SELECT 
                                    NPSID, NAME, RNUID, SORTORDER
                                 FROM NPS
                                 WHERE NPSID = :Id",
                        db.Parameter("Id", 4));
                n = db.ExecuteObject<NPS>();
            }            

            MessageBox.Show(n.Name);


Остался вопрос: почему не работает конструктор DBManager("Oracle") или DBManager().
Если их использовать, то получаю ошибку:
BLToolkit.Data.DataException: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: Named Pipes Provider, error: 40 — Не удалось открыть подключение к SQL Server) ---> System.Data.SqlClient.SqlException: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: Named Pipes Provider, error: 40 — Не удалось открыть подключение к SQL Server)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)