![]() |
|
Модераторы: gambit |
![]()
|
|
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Здравствуйте
|
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Посмотри на первую ссылку в блоке: А здесь смотрели?, который под этой темой.
-------------------- ![]() |
|||
|
||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: 1 Всего: 2 |
ссылочка на топик с примерами, первый пост можешь не читать. а дальше идет то, что тебе надо.
,http://forum.vingrad.ru/forum/topic-239235...dgv-dbnull.html --------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Unlocker, спасибо большое, нечто подобное я уже видел, только я не понял как этим пользоваться...
куда это прилаживать в textBoxе и как это связывается с dataGridView? MasterOfCode Это сообщение отредактировал(а) okaton - 10.12.2008, 23:20 |
|||
|
||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: 1 Всего: 2 |
попробую пояснить попроще.
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Unlocker, спасибо, простите мой кретинизм, возникли вопросы
baseFilter.Append("Name LIKE '%"+txtName.Text+"%'"); Name это имя колонки? Как построить синтаксис поиска во всех колонках? Что такое %? Чем характеризуется точный и не точный поиск? dsBooks.Books - я правильно понял что dsBooks объект типа DataTable ? Что тогда такое Books? |
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
да baseFilter.Append("[Name] LIKE '%"+txtName.Text+"%' and [name2] LIKE '%"+txtName2.Text+"%'"); // и так далее % означает что он будет искать вхождения слова с той стороны с которой стоит процент. например: если ты задал такой параметр поиска = name like '%мир' , то слова 'привет мир', 'мир', 'Эльмир' подпадут под фильтр и отобразяться, а если процент уберешь (name like 'мир' ), то подподет только 'мир'. точный это когда ты используешь операнды =, <>, >, <, неточный это когда ищешь включения. (см.выше)
мне на эти плюсики фиолетово нарушаем правила форума) -------------------- ![]() |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
MasterOfCode, спасибо за ответ
а по поводу "привязка фильтра DataTable.Select() к DataridView" не подскажите? Это сообщение отредактировал(а) okaton - 11.12.2008, 16:16 |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Непонятность такая
После клика по кнопке в DataViewGrid исчезают мои колонки и возникают: RowError (пустая), RowState (колонка заполнена словом Added), Table (пустая), HasErrors (заполнена чекбоксами) - порядка 50 строк Подскажите пожалуйста, в каком месте ДНК у меня ошибка. |
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Посмотри тут. Я всегда так делал.
-------------------- ![]() |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
вроде так, но при этом переименовываются имена колонок, можно как-либо выйти из этого положения? и еще вывести список всех найденых значений, а то как то бестолково получается тут явно что-то не то... Это сообщение отредактировал(а) okaton - 11.12.2008, 20:35 |
|||
|
||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: 1 Всего: 2 |
Я смотрю, что тема начала активно обсуждаться - вот бы мою недавнюю тему бы так обсуждать начали))).
Поясню свой код
StringBuilder - объект для накопления нескольких критериев поиска. Строка - объект неизменяемый, поэтому к ней переходим только в самый последний момент. Метод StringBuilder.Append() cлужит для добавления новых критериев в запрос. txtName.Text - свойство Text компонента TextBox txtName. dgvBooks - DataGridView dsBooks - типизированный DataSet Books - DataTable Этот код из моей курсовой работы с минимальными корректировками, поэтому без преамбулы мог показаться сложным. А вот насчет использования полнотекстовых поисков в одном запросе по нескольким полям должен признать, что просто через "AND" оно нереализуемо. Я пробовал, у меня не получалось. Тут возможно либо придется самому логику прописывать с использованием регулярных выражений при последовательном просмотре полей, либо делать запрос непосредственно к ядру базы данных (даже не знаю, что лучше). --------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Объясните пожалуйста этот момент dsBooks.Books
В моем dataSet нет подобного свойства. Создаю так dataSet = new DataSet(); dataSet.Tables.Add(table1); |
|||
|
||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: 1 Всего: 2 |
DataSet - это мини-СУБД в оперативной памяти. Books - это имя реальной таблицы в БД.
Если его типизировать (вложить в проект схему соответствующих таблиц и связей), то к таблицам БД можно будет обращаться двояко: 1) DataSet.Tables["<имя_таблицы>"] - это случай нетипизированного обращения, работает и в типизированном и нетипизированном DataSet; 2) DataSet.<имя_таблицы> - это случай типизированного обращения. Действует только в типизированных DataSet. После загрузки схемы у объекта появляются свойства - ссылки на соответствующие таблицы. --------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Unlocker, видимо у меня случай нетипизированного DataSet
Подкорректировал код
История повторяется. После клика по кнопке в DataViewGrid исчезают мои колонки и возникают: RowError (пустая), RowState (колонка заполнена словом Added), Table (пустая), HasErrors (заполнена чекбоксами). Это что такое и почему так происходит? З.Ы. Если не затруднит ответить, подскажите, а как типизировать DataSet? З.З.Ы. я вам в вашей теме ответил Это сообщение отредактировал(а) okaton - 11.12.2008, 22:13 |
|||
|
||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 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." |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Unlocker, типизированные это видимо приведенные к стандарту скриптового языка запроса (SQL)?
Все-таки кто-нибудь может понять в чем ошибка? Это сообщение отредактировал(а) okaton - 12.12.2008, 21:58 |
|||
|
||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 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." |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Unlocker, Большое спасибо за полные и понятные разъяснения
Это сообщение отредактировал(а) okaton - 13.12.2008, 21:22 |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Кто-нибудь может сказать почему у меня не работает поиск?
Это сообщение отредактировал(а) okaton - 17.12.2008, 18:59 |
|||
|
||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: 1 Всего: 2 |
Как организован поиск? примеры кода или SQL запроса, если имеются...
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
У меня программка в которой 2 dataGridView, которые подключены к двум dataTable, которые подключены к dataSet.
Информация которой заполняются гриды сохраняется в xml, соответственно при старте программы этот фай загружается (или создается). Это функциональная часть. Про SQL запрос сказать ничего не могу, я его сам не создавал. Подключений никаких нет. Последний код который я использовал:
После обработки события (код выше) в DataViewGrid исчезают мои колонки и возникают: RowError (пустая), RowState (колонка заполнена словом Added), Table (пустая), HasErrors (заполнена чекбоксами). Причем, что интересно количество этих строк примерно равно количеству найденых значений. Сверх непонятно! Это сообщение отредактировал(а) okaton - 17.12.2008, 21:25 |
|||
|
||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: 1 Всего: 2 |
как я уже упоминал здесь. простое использование двух полнотестковых поисков в одном запросе не дает вообще никакого результата.
пока времени посидеть над книгой Б. Гамильтона "ADO.NET. Cookbook", если выдастся свободный денек, то рекомендую посмотреть. единственное, что приходит в голову - это использование дополнительной таблицы, в которой будет сохраняться результат одного полнотестового поиска, чтобы потом его пересечь или объединить с другим результатом, но это пока теоретически. на практике, повторюсь, пока нет времени поискать и попробовать. --------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
Ладно, один запрос, результат тот же
Книгу (Билл Гамильтон. ADO.NET. Сборник рецептов) сейчас скачаю, посмотрю Это сообщение отредактировал(а) okaton - 17.12.2008, 21:44 |
|||
|
||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: 1 Всего: 2 |
у меня запрос такого типа вполне нормально получался.
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Делай так:
Добавлено через 1 минуту и 2 секунды Функция Select у DataTable возвращает DataRow[] и видать массив строк нельзя указывать в качестве источника данных... -------------------- ![]() |
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
MasterOfCode, отладчик ругается на .AsDataView()
:( |
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
В этот день не хочеться открывать студию и смотреть какая библиотека отвечает за AsDataView, поэтому делай так:
-------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |