powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Convert OleDb to SqlDb
12 сообщений из 12, страница 1 из 1
Convert OleDb to SqlDb
    #38641434
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток, знатоки!

Есть старый проект. В нём повсеместно используется OleDb. Я пытаюсь его постепенно переводить на нативный клиент. Есть метод который в качестве параметра принимает SqlConnection(можно и connection string). При запуске приложения создаётся OleDbConnection из файла Connect.udl. Как известно SqlConnection udl-файлы не признаёт. Вот мне надо "конвертировать" OleDbCon в SqlCon. Проблема в том, что если я обращаюсь к OleDbConnection con.ConnectionString, то получаю строку "file=Connect.udl". Как мне выковырять нужные данные, кроме как открывать сам файл?

Может кто с таким сталкивался? Как правильно решить эту задачку?
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38641477
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Ку.Как мне выковырять нужные данные, кроме как открывать сам файл?
а сам, то ты как думаешь , возможно прочитать данные не открыв файл?
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38641642
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation,

Я думал есть способ их извлечь из уже инициализированного OleDBConnection
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38641646
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Ку.,
а самому построить строку для idbconnection, никуда не заглядывая?
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38641718
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты хотя бы тупо блокнотом этот udl открой и о чудо ты увидишь что там всего два пальца об асфальт.
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38642044
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransa, Да ладно? См. пост #3.
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38642048
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиАлексей Ку.,
а самому построить строку для idbconnection, никуда не заглядывая?

Ну строка всегда разная и берётся из файла UDL. Поэтому жёстко зашить её не вариант.

Или имеется ввиду вытаскивать данные из OleDbConnection через idbconnection? Если да, то киньте, пожалуйста, небольшой пример (хотя бы для одного поля) как правильно обращаться к интерфейсу объекта.
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38642084
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Ку.,
я имел ввиду построить строку подключения к новому провайдеру самому, в крайнем случае подсмотрет нужные параметры
из udi файла, как уже сказали это простой текстовый файл, если у вас этих файлов очень много можете построить
фабрику строк подключения, фабрика парсит udi файл, и выдает строку под уже нужного провайдера.
форматы строк для разных провайдеров можно подмсотреть http://www.connectionstrings.com/
по поводу вопроса по idbconnection, он как бы выдает что вы не компетентны ( пробел в знаниях) что такое нет провайдер
и какие требования он должен соблюдать для типизации как поставщик, легко восполняется прочтением тематической литературы.
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38642091
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Ку.Ну строка всегда разная и берётся из файла UDL. Поэтому жёстко зашить её не вариант.
зачем зашивать - штатное место хранения строк соединения - конфиг файл приложения
а в чём проблема 4 строки вытащить из текстового файла(udl)?
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38642105
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиАлексей Ку.,
я имел ввиду построить строку подключения к новому провайдеру самому, в крайнем случае подсмотрет нужные параметры
из udi файла, как уже сказали это простой текстовый файл, если у вас этих файлов очень много можете построить
фабрику строк подключения, фабрика парсит udi файл, и выдает строку под уже нужного провайдера.
форматы строк для разных провайдеров можно подмсотреть http://www.connectionstrings.com/
по поводу вопроса по idbconnection, он как бы выдает что вы не компетентны ( пробел в знаниях) что такое нет провайдер
и какие требования он должен соблюдать для типизации как поставщик, легко восполняется прочтением тематической литературы.

ну я пробелов и не скрываю )
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38642109
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

Именно к такому формату я всё и перевожу постепенно.
Повторю: я думал есть способ выковырять эти данные из уже инициализированного OleDbConn. Ну вот я понял, что всё-таки придётся парсить файл.
...
Рейтинг: 0 / 0
Convert OleDb to SqlDb
    #38643912
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я решил просто оставить это здесь. Для критики, ну и мало ли, вдруг кому пригодится...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 private SqlConnection OleToSql(OleDbConnection con)
        {
            string constring = con.ConnectionString;
            if (constring.Substring(0, 4).ToLower().Trim() == "file")
            {
                string file = constring.Split('=')[1].Trim();
                constring = File.ReadAllText(file);
            }
            string[] ss = constring.Split(';');
            var keys = new KeyValuePair<string, string>[ss.Length];
            for (int i = 0; i < ss.Length; i++)
            {
                if (ss[i].Split('=').Length > 1)
                {
                    keys[i] = new KeyValuePair<string, string>(ss[i].Split('=')[0].Trim(), ss[i].Split('=')[1].Trim());
                }
            }
            var strbldr = new SqlConnectionStringBuilder
            {
                DataSource = keys.Where(t => t.Key == "Data Source").Select(t => t.Value).First(),
                InitialCatalog = keys.Where(t => t.Key == "Initial Catalog").Select(t => t.Value).First(),
                UserID = keys.Where(t => t.Key == "User ID").Select(t => t.Value).First(),
                Password = keys.Where(t => t.Key == "Password").Select(t => t.Value).First(),
                PersistSecurityInfo = keys.Where(t => t.Key == "Persist Security Info").Select(t => t.Value.ToLower() == "true").First()
            };
            var sqlcon = new SqlConnection(strbldr.ConnectionString);
            return sqlcon;
        }
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Convert OleDb to SqlDb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]