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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос по полю даты, C# 
:(
    Опции темы
Fedor
Дата 25.6.2004, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


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

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



Как в C# сделать выборку из базы данных по полю Дата? База Аксесовская, поле имеет формат даты dd.mm.hhhh. Переменная в C#, по которою нужна вести выборку типа DateTime.


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Kurt
Дата 25.6.2004, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



Хмм... Немного не понимаю вопроса..
Тебе нужно сделать запрос, допустим, дата больше чего-то там?
Или ты не можешь достать данные из результата выполнения запроса?
Вобщем, я тебе написал небольшой примерчик.
Я создал таблицу MyTable с двумя столбцами c1 (числовой) и с2 (Дата).
Забил 3-мя строками:
1 01.01.2000
2 02.02.2002
3 26.06.2004

Короче, вот код (готов к компиляции):
Код

using System;
using System.Data;
using System.Data.OleDb;

class MainClass
{
public static void Main(string[] args)
{
 OleDbConnection cn=new OleDbConnection();
 cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"+@"data source=G:\Microsoft.NET\exercises\C#.NET\other\AccessData\baza.mdb";
 String SQLStr="select * from MyTable where (c2>#01/01/2001#)";
 cn.Open();
 OleDbCommand mycmd=new OleDbCommand(SQLStr,cn);
 OleDbDataReader reader=mycmd.ExecuteReader();
 int c1;
 DateTime c2;
 while(reader.Read()){
  c1=reader.GetInt32(0);
  c2=reader.GetDateTime(1);
  Console.WriteLine("c1="+c1+"\tc2="+c2);
 
 }
 reader.Close();
 cn.Close();
 Console.Read();
 return;
 
}
}


Это консольный проект.
Он просто выводит результат работы запроса.
Тут тока 2 интересных момента:
1)
Код

String SQLStr="select * from MyTable where (c2>#01/01/2001#)";

Обрати внимание, как записано условие, чтоб вытащить данные после 2001-го года. Честно признаюсь, я с этим дело раньше не имел. Поэтому результат получен методом научного тыка - может, можно по-другому сделать, но так точно работает. smile.gif
2)
Данные типа DateTime достаются из reader'a:
Код
c2=reader.GetDateTime(1);

Все. Надеюсь, тебе это чем-то помогло.
Удачи!



--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Fedor
Дата 25.6.2004, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


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

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



Kurt Был бы ты девушкой, я б тебя щас расцеловал. а так просто добавлю рейтинг. smile.gif
biggrin.gif biggrin.gif rolleyes.gif hehe.gif


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Kurt
Дата 26.6.2004, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



Всегда приятно слышать такие слова. smile.gif
Успеха тебе и твоему проекту!


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Finkel
Дата 27.6.2004, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



хм, вроде в SQL сть такая вещи как выделение даты :
Select * from MyTable where month(название колонки в которой содержится дата)>2
Аналогично есть команда Year & Day которые в свою очередь выделяют год и день соответсвенно.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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