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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как можно загружать данные за определенный период 
:(
    Опции темы
compaq
Дата 7.10.2009, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как можно загружать данные за определенный период в DataTable через OleDbDataAdapter.Fill 
Допустим есть такой  DataTable 
Код

            DataTable table = new DataTable("Test");
            DataColumn column;
            //DataRow row;

            // Create Date column.
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.DateTime");
            column.ColumnName = "Date";
            column.Caption = "Test";
            column.ReadOnly = true;
            column.Unique = true;
            table.Columns.Add(column);


Его нужно заполнить из экселевой таблицы данными за определенный период (допустим 2 недели) как это можно сделать
PM MAIL   Вверх
Ram1reS
Дата 7.10.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нужно изменить SelectCommand у OleDbDataAdapter, подпробно здесь.
--------------------
 
PM MAIL ICQ   Вверх
compaq
Дата 7.10.2009, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ram1reS, 
Большое спасибо. Вопрос решён.
PM MAIL   Вверх
compaq
Дата 7.10.2009, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот тут у меня возникла проблемка не как не могу решить.

Есть такой код
Код

            DataTable table = new DataTable("Test");
            DataColumn column;
            //DataRow row;

            // Create Date column.
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.DateTime");
            column.ColumnName = "IDate";
            column.Caption = "Test";
            column.ReadOnly = true;
            column.Unique = true;
            table.Columns.Add(column);



Код

            OleDbConnection thisConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=nwind.mdb");
            OleDbDataAdapter Adapter = new OleDbDataAdapter("SELECT * FROM Test" + "WHERE IDate >= '21.09.2009 10:50:00'", thisConnection);
            OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(Adapter);

            Adapter.Fill(table);

            DataRow row = table.NewRow();
            row["IDate"] = "21.09.2009 11:50:00";
            table.Rows.Add(row); ;
            Adapter.Update(table);

На 
Код
Adapter.Fill(table);

Вываливается сообщение 
Код
Несоответствие типов данных в выражении условия отбора.

Если в 
Код
OleDbDataAdapter Adapter = new OleDbDataAdapter("SELECT * FROM Test" + "WHERE IDate >= '21.09.2009 10:50:00'", thisConnection);


Убрать кавычки с  '21.09.2009 10:50:00' то вываливается сообшение
Код

Ошибка синтаксиса (пропущен оператор) в выражении запроса 'IDate = 21.09.2009 10:50:00'.

В чем проблема? Как мне кажется это из-за разницы в типах данных между акцесс и DataTable только как их с конвертировать?

Это сообщение отредактировал(а) compaq - 7.10.2009, 17:39
PM MAIL   Вверх
Ram1reS
Дата 7.10.2009, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Во-первых, проверьте пробел в запросе
Код

"SELECT * FROM Test" + "WHERE IDate >= '21.09.2009 10:50:00'" >>
"SELECT * FROM Test " + "WHERE IDate >= '21.09.2009 10:50:00'"


Во-вторых, попробуйте дату написать в таком формате '2009-09-21 10:50:00'.
В-третьих, вообще запросы так составлять не надо(имею ввиду конкатенацию строк) -  используйте параметры.
--------------------
 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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