Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Поиск по DataTable / 4 сообщений из 4, страница 1 из 1
15.11.2006, 09:45
    #34129133
CrazyPotato
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по DataTable
Господа, кто сталкивался с проблемой поиска по колонкам DataTable, не являющимся её первичным ключём?
Как известно DataRowCollection.Find здесь не канает.
Циклом каждый раз бегать по таблице мне как-то не хочется. (Тем более, что этот поиск вызывается с большой частотой)
MSDN молчит по этому поводу.
Хочется всё таки найти какие-нибудь native средства для поиска по DataTable... Кто-нибудь знает?
...
Рейтинг: 0 / 0
15.11.2006, 09:50
    #34129148
CrazyPotato
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по DataTable
Можно конечно для данной таблицы получить DataView, а в ней воспользоваться методом Filter.
Но проблема в том, что Filter требует параметром текстовую строку. А поиск у меня идёт по столбцу типа DateTime. Хоть убей, не представляю, как правильно отформатировать переменную типа DateTime в текстовый вид...
...
Рейтинг: 0 / 0
15.11.2006, 10:00
    #34129176
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по DataTable
Код: plaintext
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.
using System;
using System.Data;
using System.Text;

namespace Test
{
  
  class Program
  {
    static void Main(string[] args)
    {

      DataTable dt = new DataTable();
      dt.Columns.Add("date", typeof(DateTime));

      dt.Rows.Add(new object[] { DateTime.Today });
      dt.Rows.Add(new object[] { DateTime.Today.AddDays( 1 ) });
      dt.Rows.Add(new object[] { DateTime.Today.AddDays( 2 ) });
      dt.Rows.Add(new object[] { DateTime.Today.AddDays( 3 ) });
      dt.Rows.Add(new object[] { DateTime.Today.AddDays( 4 ) });
      dt.Rows.Add(new object[] { DateTime.Today });

      string filter = string.Format("date = '{0}'", DateTime.Today);

      DataRow[] rows = dt.Select(filter);

    }
  }
}
...
Рейтинг: 0 / 0
18.11.2006, 17:46
    #34138655
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по DataTable
CrazyPotatoМожно конечно для данной таблицы получить DataView, а в ней воспользоваться методом Filter.
Но проблема в том, что Filter требует параметром текстовую строку. А поиск у меня идёт по столбцу типа DateTime. Хоть убей, не представляю, как правильно отформатировать переменную типа DateTime в текстовый вид...

DataView имеет также метод Find. Но предварительно нужно отсортировать столбец, по которому производится поиск.
DataView.Sort()
DataView.Find() - возвращает индекс строки в таблице.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Поиск по DataTable / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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