Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Except DataTable / 9 сообщений из 9, страница 1 из 1
14.02.2011, 20:48
    #37115792
Erik_Kartmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Except DataTable
Привет друзья!
понадобилось сравнивать табличку в разные моменты времени, и узнавать, какие айдишники появились в более поздний момент времени.
чтоб упростить понимание, возьмём табличку ADDWord со столбцами ID и Word. (интежер и стринг соответственно)
навоял такое:
Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
           
            DataTable dt1 = new DataTable();
            DataTable dt2 = new DataTable();

            dt1 = new DataTable();
            dt1.Columns.Add(new DataColumn("ID", typeof(int)));
            dt1.Columns.Add(new DataColumn("Word", typeof(string)));

            dt2 = dt1.Copy();

            var e1 = from c in m_Word.m_Dataset.ADDWord.AsEnumerable()
                     select new { ID = c.Field<Int32>("ID"), Word = c.Field<string>("Word") };
            foreach (var result in e1)
            {
                dt1.Rows.Add(new object[2] { result.ID, result.Word });
            }

            var rez1 = from c in dt1.AsEnumerable()
                       select new { ID = c.Field<Int32>("ID"), Word = c.Field<string>("Word") };
////----------тут процедура заполнения ADDWord новыми данными

            var e2 = from c in m_Word.m_Dataset.ADDWord.AsEnumerable()
                     select new { ID = c.Field<Int32>("ID"), Word = c.Field<string>("Word") };

            foreach (var result in e2)
            {
                dt2.Rows.Add(new object[2] { result.ID, result.Word });
            }


            var rez2 = from c in dt2.AsEnumerable()
                       select new { ID = c.Field<Int32>("ID"), Word = c.Field<string>("Word") };
            var e3 = rez2.Except(rez1);

            foreach (var result in e3)
            {
                MessageBox.Show(result.Word);
                //перебор записей для нужд
            }


            return;
---------------------------------------------------------
SET @@verSION = 'Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 6.0 (Build 6002: Service Pack 2) '
...
Рейтинг: 0 / 0
14.02.2011, 20:49
    #37115794
Erik_Kartmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Except DataTable
собственно, как-то проще можно было, да?
...
Рейтинг: 0 / 0
14.02.2011, 21:04
    #37115817
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Except DataTable
Наверное проще было бы ввести поле CreatedTime типа DateTime
...
Рейтинг: 0 / 0
14.02.2011, 21:15
    #37115833
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Except DataTable
Если идентификатор - монотонно возр. последовательность, то просто > max()
...
Рейтинг: 0 / 0
14.02.2011, 22:06
    #37115882
Erik_Kartmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Except DataTable
про дентификатор то я и забыл((
...
Рейтинг: 0 / 0
14.02.2011, 22:07
    #37115885
Erik_Kartmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Except DataTable
А про эксцепт мой на ЛИНКЮ что скажете?
Вдруг забредёт кто-нибудь с гугла сюда...
...
Рейтинг: 0 / 0
14.02.2011, 22:56
    #37115931
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Except DataTable
Erik_Kartmann,

Компаре сработало?
...
Рейтинг: 0 / 0
14.02.2011, 23:07
    #37115946
Erik_Kartmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Except DataTable
???
...
Рейтинг: 0 / 0
14.02.2011, 23:09
    #37115950
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Except DataTable
Erik_Kartmann,

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


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