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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск в MS SQL 2000, C# 
:(
    Опции темы
Unlimited
Дата 5.8.2005, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Приветик всем!

у меня датенбанк MS SQL 2000 и использую C#, мне необходимо написать поиск по всем клиентам, точнее сказать по всем данным каждого клиента. Искаться может быть любое сочетание вводимое в поле поиска. Поиск должен быть таким, что должно находиться даже если искомое слово или сочетание является частью данних в поле ДБ....
Да задаче не из легких....
Кто нибуд писал такое.

Pls. Желателно с примерами

Заранее болшое спасибо!!!!
PM MAIL   Вверх
arilou
Дата 5.8.2005, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

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



Недавно решал похожую задачу, только поиск велся по нескольким таблицам. Если у тебя на реализацию времени не очень много, то можно сделать так:

1) Юзер вводит фразу для поиска

2) Твоя программа выполняет запрос примерно такого вида:
Код

SELECT * FROM clients WHERE name LIKE ? OR description LIKE ? OR address LIKE ?


где значением ? будет строка вида %фраза поиска%

Собственно, вот и всё smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Dark Elf
Дата 5.8.2005, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

select * from tb_clients where name like '%введённое слово%'



--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
Unlimited
Дата 5.8.2005, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо!
Мне нужно тоже по нескольким таблицам..., тогда нужно таблици между собой "JOIN" или как? не могли бы вы и такой пример написать

Заранее большое спасибо!!!!
PM MAIL   Вверх
arilou
Дата 5.8.2005, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

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



Чессно говоря, по нескольким таблицам я делал точно также, а результаты объединял. Можно подойти немного умнее, и поступить примерно так (это псевдокод):


Код

string query = "SELECT * FROM clients WHERE name LIKE @p1 OR description LIKE @p1 OR address LIKE @p1;" +
                        "SELECT * FROM anothertable WHERE name LIKE @p1;" +
                        "SELECT * FROM onemoretable WHERE description LIKE @p1";

SqlCommand cmd = new SqlCommand(query);
// не уверен насчет порядка параметров в след. вызове, 
// давно не использовал (у меня все автоматизировано)
cmd.Parameters.Add(new SqlParameter("@p1", "%фраза для поиска%"));

DataSet searchResults = new DataSet();
DataAdapter da = New SqlDataAdapter(cmd);

// заполняем DataSet
da.Fill(searchResults);



Теперь в датасете будет столько таблиц с результатами, сколько SELECT'ов в запросе (в данном случае - три).
Надеюсь, что помог. Только не гарантирую компиляемости кода - он писался прямо в браузере. Но идея, думаю, ясна.

ЗЫ. Имей ввиду, что несколько SELECT'ов в одном запросе в Access'е работать не будут, не знаю, как в других БД.

Это сообщение отредактировал(а) arilou - 5.8.2005, 13:29


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Unlimited
Дата 5.8.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо болшое за идею!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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