powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Поиск по DataTable
4 сообщений из 4, страница 1 из 1
Поиск по DataTable
    #34129133
Фотография CrazyPotato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, кто сталкивался с проблемой поиска по колонкам DataTable, не являющимся её первичным ключём?
Как известно DataRowCollection.Find здесь не канает.
Циклом каждый раз бегать по таблице мне как-то не хочется. (Тем более, что этот поиск вызывается с большой частотой)
MSDN молчит по этому поводу.
Хочется всё таки найти какие-нибудь native средства для поиска по DataTable... Кто-нибудь знает?
...
Рейтинг: 0 / 0
Поиск по DataTable
    #34129148
Фотография CrazyPotato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно конечно для данной таблицы получить DataView, а в ней воспользоваться методом Filter.
Но проблема в том, что Filter требует параметром текстовую строку. А поиск у меня идёт по столбцу типа DateTime. Хоть убей, не представляю, как правильно отформатировать переменную типа DateTime в текстовый вид...
...
Рейтинг: 0 / 0
Поиск по DataTable
    #34129176
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Поиск по DataTable
    #34138655
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CrazyPotatoМожно конечно для данной таблицы получить DataView, а в ней воспользоваться методом Filter.
Но проблема в том, что Filter требует параметром текстовую строку. А поиск у меня идёт по столбцу типа DateTime. Хоть убей, не представляю, как правильно отформатировать переменную типа DateTime в текстовый вид...

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


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