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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неточный поиск в dataGridView 
:(
    Опции темы
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   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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