Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неточный поиск в dataGridView 
:(
    Опции темы
okaton
Дата 10.12.2008, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Здравствуйте smile Сабж. Простите за тупой вопрос, а как можно выполнить неточный поиск данных в dataGridView из textbox который находится вне dataGridView ?
PM MAIL   Вверх
MasterOfCode
Дата 10.12.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



Посмотри на первую ссылку в блоке: А здесь смотрели?, который под этой темой.


--------------------
user posted image
PM ICQ   Вверх
Unlocker
Дата 10.12.2008, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



ссылочка на топик с примерами, первый пост можешь не читать. а дальше идет то, что тебе надо.
,http://forum.vingrad.ru/forum/topic-239235...dgv-dbnull.html
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
okaton
Дата 10.12.2008, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Unlocker, спасибо большое, нечто подобное я уже видел, только я не понял как этим пользоваться...
куда это прилаживать в textBoxе и как это связывается с dataGridView?

MasterOfCode  smile а как вы думаете? 5 баллов  smile  хотите плюсик поставлю в категории "рассмешили"? А по существу, я не решился поднимать решенную полугодичную тему smile 


Это сообщение отредактировал(а) okaton - 10.12.2008, 23:20
PM MAIL   Вверх
Unlocker
Дата 11.12.2008, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



попробую пояснить попроще.
Код

            StringBuilder baseFilter = new StringBuilder();
            //критерий поиска берем из TextBox'a
            baseFilter.Append("Name LIKE '%"+txtName.Text+"%'");
            //привязка фильтра DataTable.Select() к DataridView
            dgvBooks.DataSource = dsBooks.Books.Select(baseFilter.ToString());


--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
okaton
Дата 11.12.2008, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Unlocker, спасибо, простите мой кретинизм, возникли вопросы


baseFilter.Append("Name LIKE '%"+txtName.Text+"%'");
Name это имя колонки? Как построить синтаксис поиска во всех колонках? Что такое %? Чем характеризуется точный и не точный поиск?

dsBooks.Books - я правильно понял что dsBooks объект типа DataTable ? Что тогда такое Books?
PM MAIL   Вверх
MasterOfCode
Дата 11.12.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



Цитата(okaton @  11.12.2008,  16:15 Найти цитируемый пост)
Name это имя колонки? 

да
Цитата(okaton @  11.12.2008,  16:15 Найти цитируемый пост)
Как построить синтаксис поиска во всех колонках?

baseFilter.Append("[Name] LIKE '%"+txtName.Text+"%' and [name2] LIKE '%"+txtName2.Text+"%'"); // и так далее
Цитата(okaton @  11.12.2008,  16:15 Найти цитируемый пост)
Что такое %?

% означает что он будет искать вхождения слова с той стороны с которой стоит процент. например:
если ты задал такой параметр поиска = name like '%мир' , то слова 'привет мир', 'мир', 'Эльмир' подпадут под фильтр и отобразяться, а если процент уберешь (name like 'мир' ), то  подподет только 'мир'.
Цитата(okaton @  11.12.2008,  16:15 Найти цитируемый пост)
Чем характеризуется точный и не точный поиск?

точный это когда ты используешь операнды =, <>, >, <, неточный это когда ищешь включения. (см.выше)
Цитата(okaton @  11.12.2008,  01:02 Найти цитируемый пост)
MasterOfCode  smile а как вы думаете? 5 баллов  smile  хотите плюсик поставлю в категории "рассмешили"?

мне на эти плюсики фиолетово  smile 
Цитата(okaton @  11.12.2008,  01:02 Найти цитируемый пост)
А по существу, я не решился поднимать решенную полугодичную тему

нарушаем правила форума)


--------------------
user posted image
PM ICQ   Вверх
okaton
Дата 11.12.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



MasterOfCode, спасибо за ответ smile
а по поводу "привязка фильтра DataTable.Select() к DataridView" не подскажите?

Это сообщение отредактировал(а) okaton - 11.12.2008, 16:16
PM MAIL   Вверх
okaton
Дата 11.12.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Непонятность такая

Код

private void toolStripButton7_Click(object sender, EventArgs e)
        {
            StringBuilder baseFilter = new StringBuilder();
            //критерий поиска берем из TextBox'a            
            baseFilter.Append("[Column01_FactoryID] LIKE '%" + toolStripTextBox1.Text + "%' and [Column02_IDComplete] LIKE '%" + toolStripTextBox1.Text + "%'");
            //привязка фильтра DataTable.Select() к DataridView
            dataGridView1.DataSource = table1.Select(baseFilter.ToString());           
        }


После клика по кнопке в DataViewGrid исчезают мои колонки и возникают: RowError (пустая), RowState (колонка заполнена словом Added), Table (пустая), HasErrors (заполнена чекбоксами) - порядка 50 строк

Подскажите пожалуйста, в каком месте ДНК у меня ошибка.
PM MAIL   Вверх
MasterOfCode
Дата 11.12.2008, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



Посмотри тут. Я всегда так делал. 


--------------------
user posted image
PM ICQ   Вверх
okaton
Дата 11.12.2008, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Код

        DataTable dt;
        DataView dv;
        private void toolStripButton7_Click(object sender, EventArgs e)
        {
            dt = table1;
            dv = dt.DefaultView;
            string filter;
            filter = "[Column01_FactoryID] LIKE '%" + toolStripTextBox1.Text + "%' 
                         and [Column02_IDComplete] LIKE '%" + toolStripTextBox1.Text + "%'";
            dv.RowFilter = filter;
            dataGridView1.DataSource = dv;
        }


вроде так, но при этом переименовываются имена колонок, можно как-либо выйти из этого положения?
и еще вывести список всех найденых значений, а то как то бестолково получается

тут явно что-то не то... smile 

Это сообщение отредактировал(а) okaton - 11.12.2008, 20:35
PM MAIL   Вверх
Unlocker
Дата 11.12.2008, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



Я смотрю, что тема начала активно обсуждаться - вот бы мою недавнюю тему бы так обсуждать начали))).
Поясню свой код
Код

            StringBuilder baseFilter = new StringBuilder();
            //критерий поиска берем из TextBox'a
            baseFilter.Append("Name LIKE '%"+txtName.Text+"%'");
            //привязка фильтра DataTable.Select() к DataridView
            dgvBooks.DataSource = dsBooks.Books.Select(baseFilter.ToString());

StringBuilder - объект для накопления нескольких критериев поиска. Строка - объект неизменяемый, поэтому к ней переходим только в самый последний момент. Метод StringBuilder.Append() cлужит для добавления новых критериев в запрос.
txtName.Text - свойство Text компонента TextBox txtName.
dgvBooks - DataGridView
dsBooks - типизированный DataSet
Books - DataTable
Этот код из моей курсовой работы с минимальными корректировками, поэтому без преамбулы мог показаться сложным.
А вот насчет использования полнотекстовых поисков в одном запросе по нескольким полям должен признать, что просто через "AND" оно нереализуемо. Я пробовал, у меня не получалось. Тут возможно либо придется самому логику прописывать с использованием регулярных выражений при последовательном просмотре полей, либо делать запрос непосредственно к ядру базы данных (даже не знаю, что лучше).

--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
okaton
Дата 11.12.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Объясните пожалуйста этот момент dsBooks.Books

В моем dataSet нет подобного свойства. 

Создаю так dataSet = new DataSet();         
                    dataSet.Tables.Add(table1);

PM MAIL   Вверх
Unlocker
Дата 11.12.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



DataSet - это мини-СУБД в оперативной памяти. Books - это имя реальной таблицы в БД.
Если его типизировать (вложить в проект схему соответствующих таблиц и связей), то к таблицам БД можно будет обращаться двояко:
1) DataSet.Tables["<имя_таблицы>"] - это случай нетипизированного обращения, работает и в типизированном и нетипизированном DataSet;
2) DataSet.<имя_таблицы> - это случай типизированного обращения. Действует только в типизированных DataSet. После загрузки схемы у объекта появляются свойства - ссылки на соответствующие таблицы.
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
okaton
Дата 11.12.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Unlocker, видимо у меня случай нетипизированного DataSet

Подкорректировал код
Код

StringBuilder baseFilter = new StringBuilder();            
baseFilter.Append("[Column01_FactoryID] LIKE '%" + toolStripTextBox1.Text + "%' 
                 and [Column02_IDComplete] LIKE '%" + toolStripTextBox1.Text + "%'");
dataGridView1.DataSource = dataSet.Tables["ParentTable"].Select(baseFilter.ToString());

История повторяется. После клика по кнопке в DataViewGrid исчезают мои колонки и возникают: RowError (пустая), RowState (колонка заполнена словом Added), Table (пустая), HasErrors (заполнена чекбоксами). Это что такое и почему так происходит?

З.Ы. Если не затруднит ответить, подскажите, а как типизировать DataSet?
З.З.Ы. я вам в вашей теме ответил

Это сообщение отредактировал(а) okaton - 11.12.2008, 22:13
PM MAIL   Вверх
Unlocker
Дата 11.12.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



Типизация DataSet - штука довольно интересная. если разбираешься в XML, схему можно в блокноте написать, но проще всего в VisualStudio.
Описывать все проблемы типизации на форуме точно не с руки, но могу посоветовать 3 источника знаний (книги):

1) С. Малик "ADO.NET 2.0 для профессионалов" Изд. "Виллиямс", 2006
2) Д. Сеппа "Программирование на Microsoft ADO.NET 2.0" Изд. Питер, 2007
3) Б. Гамильтон "ADO.NET. Сборник рецептов" Изд. Питер, 2005

первая из трех книг у меня в бумаге, все три есть в электронке в он-лайн библиотеках.
в первой точно описан процесс типизации, во второй тоже, а вот третью пока изучить как следует не удалось.
в последней может быть решение проблемы твоих ошибок, но не могу пока стопроцентно это утверждать.
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
okaton
Дата 12.12.2008, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Unlocker, типизированные это видимо приведенные к стандарту скриптового языка запроса (SQL)?


Все-таки кто-нибудь может понять в чем ошибка?

Это сообщение отредактировал(а) okaton - 12.12.2008, 21:58
PM MAIL   Вверх
Unlocker
Дата 12.12.2008, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



Типизация - это строгий контроль типов со стороны платформы в программном коде. Типизация помогает сократить преобразования типов непосредственно в коде, уменьшить количество ошибок и увеличить быстродействие, связанные с преобразованиями. В общем случае, имея готовую БД в SQL Server, например, имеется возможность типизации прямо из СУБД посредством Visual Studio. К твоим DataSet подгружаются схемы с расширением .xsd, пример которой приложу к посту. Схему типов, как я уже упоминал можно создать и вручную.
Работа адаптеров, для которых и пишутся запросы SQL, от типизации DataSet никак не зависит, потому что это разные классы.

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  dsBooks.rar 4,21 Kb
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
okaton
Дата 13.12.2008, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Unlocker, Большое спасибо за полные и понятные разъяснения smile

Это сообщение отредактировал(а) okaton - 13.12.2008, 21:22
PM MAIL   Вверх
okaton
Дата 17.12.2008, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Кто-нибудь может сказать почему у меня не работает поиск?



Это сообщение отредактировал(а) okaton - 17.12.2008, 18:59
PM MAIL   Вверх
Unlocker
Дата 17.12.2008, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



Как организован поиск? примеры кода или SQL запроса, если имеются...
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
okaton
Дата 17.12.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



У меня программка в которой 2 dataGridView, которые подключены к двум dataTable, которые подключены к dataSet.
Информация которой заполняются гриды сохраняется в xml, соответственно при старте программы этот фай загружается (или создается).  Это функциональная часть. 
Про SQL запрос сказать ничего не могу, я его сам не создавал. 
Подключений никаких нет.

Последний код который я использовал:
Код

StringBuilder baseFilter = new StringBuilder();            
baseFilter.Append("[Column01_FactoryID] LIKE '%" + toolStripTextBox3.Text + "%' 
                 and [Column02_IDComplete] LIKE '%" + toolStripTextBox3.Text + "%'");
dataGridView1.DataSource = dataSet.Tables["ParentTable"].Select(baseFilter.ToString());


После обработки события (код выше) в DataViewGrid исчезают мои колонки и возникают: RowError (пустая), RowState (колонка заполнена словом Added), Table (пустая), HasErrors (заполнена чекбоксами). Причем, что интересно количество этих строк примерно равно количеству найденых значений.  smile 
Сверх непонятно!

Это сообщение отредактировал(а) okaton - 17.12.2008, 21:25
PM MAIL   Вверх
Unlocker
Дата 17.12.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



как я уже упоминал здесь. простое использование двух полнотестковых поисков в одном запросе не дает вообще никакого результата.
пока времени посидеть над книгой Б. Гамильтона "ADO.NET. Cookbook", если выдастся свободный денек, то рекомендую посмотреть.
единственное, что приходит в голову - это использование дополнительной таблицы, в которой будет сохраняться результат одного полнотестового поиска, чтобы потом его пересечь или объединить с другим результатом, но это пока теоретически. на практике, повторюсь, пока нет времени поискать и попробовать.
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
okaton
Дата 17.12.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Ладно, один запрос, результат тот же  smile 

Код

baseFilter.Append("Column01_FactoryID LIKE '%" + toolStripTextBox3.Text + "%'");


Книгу (Билл Гамильтон. ADO.NET. Сборник рецептов) сейчас скачаю, посмотрю smile

Это сообщение отредактировал(а) okaton - 17.12.2008, 21:44
PM MAIL   Вверх
Unlocker
Дата 17.12.2008, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



у меня запрос такого типа вполне нормально получался.
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
MasterOfCode
Дата 18.12.2008, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



Цитата(okaton @  17.12.2008,  23:25 Найти цитируемый пост)
Ладно, один запрос, результат тот же

Делай так:
Код

StringBuilder baseFilter = new StringBuilder();            
baseFilter.Append("[Column01_FactoryID] LIKE '%" + toolStripTextBox3.Text + "%' and [Column02_IDComplete] LIKE '%" + toolStripTextBox3.Text + "%'");
DataView dv = dataSet.Tables["ParentTable"].AsDataView();
dv.RowFilter = baseFilter.ToString();
dataGridView1.DataSource = dv;


Добавлено через 1 минуту и 2 секунды
Функция Select у DataTable возвращает DataRow[] и видать массив строк нельзя указывать в качестве источника данных...


--------------------
user posted image
PM ICQ   Вверх
okaton
Дата 19.12.2008, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



MasterOfCode, отладчик ругается на .AsDataView()

Цитата

Error    1    'System.Data.DataTable' does not contain a definition for 'AsDataView' and no extension method 'AsDataView' accepting a first argument of type 'System.Data.DataTable' could be found (are you missing a using directive or an assembly reference?)


:(
PM MAIL   Вверх
MasterOfCode
Дата 20.12.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



В этот день не хочеться открывать студию и смотреть какая библиотека отвечает за AsDataView, поэтому делай так:
Код

DataView dv = (DataView)dataSet.Tables["ParentTable"];



--------------------
user posted image
PM ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0688 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.