Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуталси с датами / 20 сообщений из 20, страница 1 из 1
14.11.2003, 10:58
    #32324080
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
гАспада

как составить запрос, чтобы там появлялись заявки не все а только за последний месяц

В базе имеется столбец Дата заявки (DateTime)
...
Рейтинг: 0 / 0
14.11.2003, 11:30
    #32324162
tpg
tpg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
Лучше всего, конечно чтобы использовался индекс (если он есть), вычислить начальную дату месяца, а в запросе написать

... WHERE [Дата]>=<значение_начальной_даты_текущего_месяца>
...
Рейтинг: 0 / 0
14.11.2003, 11:31
    #32324165
tpg
tpg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
Вот сюда в FAQ можно заглянуть.
...
Рейтинг: 0 / 0
14.11.2003, 13:32
    #32324416
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
я хочу что то типа такого

InitializeComponent()

DateTime d1 = текущая дата; (Допустим 14.05.03)

DateTime d2 = d1 - 30 дней; (т.е. чтобы получилось 14.04.03)

sqlDataAdapter1.Fill ....

а потом в запросе написать


SELECT.........WHERE(Дата>=d3)


вообще такое возможно?
...
Рейтинг: 0 / 0
14.11.2003, 14:07
    #32324493
Trong
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
Код: plaintext
1.
2.
3.
sqlDataAdapter.SelectCommand.CommandText =  "select * from MyTable where [Date]>=@dt" 
sqlDataAdapter.SelectCommand.Parameters.Clear();
sqlDataAdapter.SelectCommand.Parameters.Add( "@dt" , SqlDbType.VarChar,  8 ,  "@dt" ).Value = sDate;
...
Рейтинг: 0 / 0
14.11.2003, 15:18
    #32324637
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
хм, извини конечно за тупость но я тута ничего не понял Как оно тута вычичляет разницу в 30 дней
Если можно то начеркай полностью

Я писал там выше. Все что тама по русски я не знаю как написать на шарповском
...
Рейтинг: 0 / 0
14.11.2003, 17:14
    #32324932
Dronopotamus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
автор писал:
хм, извини конечно за тупость но я тута ничего не понял Как оно тута вычичляет разницу в 30 дней


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
DateTime d = DateTime.Now.AddMonths(- 1 );

дальше можно и так:
sqlDataAdapter1.SelectCommand.CommandText = 
 "select * from Table where ([Date] >= convert(datetime, '" + d.ToString("yyyy.mm.dd") + "', 102 ))"

sqlDataAdapter1.Fill(...)
...
Рейтинг: 0 / 0
14.11.2003, 18:26
    #32325046
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
С вычислениями розобрался

а вот дальше опять все ругается, мол System error
...
Рейтинг: 0 / 0
17.11.2003, 15:06
    #32326340
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
Может еще какие версии будут, а?
...
Рейтинг: 0 / 0
17.11.2003, 16:13
    #32326464
Dronopotamus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
ты внятно скажи чего у тебя не работает :)
...
Рейтинг: 0 / 0
17.11.2003, 22:05
    #32326838
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
команда адаптера
При написании все ок.
А при загрузке System error в датасете
...
Рейтинг: 0 / 0
18.11.2003, 10:10
    #32327051
Dronopotamus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
Посмотри в окне output что за system error.
Там будет строчка типа
Unhandled Exception: описание_ошибки.

Скорее всего у тебя неправильная ConnectionString либо с правами на сервере чего, т.к. код работает.
...
Рейтинг: 0 / 0
18.11.2003, 10:55
    #32327118
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
public bestellForm()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();


DateTime d = DateTime.Now.AddMonths(-1);




sqlDataAdapter1.Fill(dataSet11);
sqlDataAdapter2.Fill(dataSet531);
sqlDataAdapter3.Fill(dataSet561);
//
// TODO: Add any constructor code after InitializeComponent call
//
}


...



private void InitializeComponent()
{

...

this.sqlSelectCommand1.CommandText = "SELECT [Пункт назначения],
[Дата заявки], ..., id FROM [full] WHERE" +
" ([Дата заявки] >= convert(datetime, '" + d.ToString("yyyy.mm.dd") + "', 102))";

this.sqlSelectCommand1.Connection = this.sqlConnection1;

...



При загрузке выдает ошибку и указывает на sqlDataAdapter1.Fill(dataSet11);


Может я не туда воткнул DateTime d = DateTime.Now.AddMonths(-1);
...
Рейтинг: 0 / 0
18.11.2003, 11:40
    #32327178
Dronopotamus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
ну так посмотри что за ошибка в output'e
...
Рейтинг: 0 / 0
18.11.2003, 12:24
    #32327243
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
dditional information: System error.


Unhandled Exception: System.Data.SqlClient.SqlException: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, TdsParserState state)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, TdsParserState state)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Run(RunBehavior run, SqlCommand cmdHandler, SqlDataReader dataStream)
at System.Data.SqlClient.TdsParser.Run(RunBehavior run, SqlCommand cmdHandler)
at System.Data.SqlClient.SqlDataReader.get_HasMoreResults()
at System.Data.SqlClient.SqlDataReader.NextResult()
at System.Data.Common.DbDataAdapter.FillNextResult(IDataReader dataReader)
at System.Data.Common.DbDataAdapter.FillFromReader(Object data, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at System.Data.Common.DbDataAdapter.Fill(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
at transport_7._03sl.bestellForm..ctor() in c:\documents and settings\х\мои документы\visual studio projects\transport 7.03sl\transport 7.03sl\bestellform.cs:line 70
at transport_7._03sl.Form1.menuItem5_Click(Object sender, EventArgs e) in c:\documents and settings\х\мои документы\visual studio projects\transport 7.03sl\transport 7.03sl\form1.cs:line 679
at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
at System.Windows.Forms.MenuItemData.Execute()
at System.Windows.Forms.Command.Invoke()

at System.Windows.Forms.Command.DispatchID(Int32 id)
at System.Windows.Forms.Control.WmCommand(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.ComponentManager.System.Windows.Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at transport_7._03sl.Form1.Main() in c:\documents and settings\х\мои документы\visual studio projects\transport 7.03sl\transport 7.03sl\form1.cs:line 674The program '[1620] transport 7.03sl.exe' has exited with code 0 (0x0).
...
Рейтинг: 0 / 0
18.11.2003, 15:04
    #32327566
Valera-x
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
Код: plaintext
1.
2.
3.
this.sqlSelectCommand1.CommandText =  "SELECT [Пункт назначения], 
[Дата заявки], ..., id FROM [full] WHERE  month([Дата заявки])=month(GetDate()) " 

...
Рейтинг: 0 / 0
18.11.2003, 15:07
    #32327575
Valera-x
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
Еще нужно добавить проверку на текущий год
Код: plaintext
1.
and year([Дата заявки] year(GetDate())
...
Рейтинг: 0 / 0
19.11.2003, 10:02
    #32328221
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
Так то оно заработало,

но показывает заявки только за текущий месяц

А если я, например буду Это смотреть числа первого или второго?

А как воткнуть туда минус 30 дней?
...
Рейтинг: 0 / 0
19.11.2003, 15:08
    #32328865
Valera-x
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
Запрос с выбором месяца.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
....
string str= "SELECT [Пункт назначения], 
[Дата заявки], ..., id FROM [full] WHERE  month([Дата заявки])={0 } and year([Дата заявки] year(GetDate())
";
int m= 1 ;//Номер месяца ( 1 .. 12 )
this.sqlSelectCommand1.CommandText = String.Format(str,m)
....
...
Рейтинг: 0 / 0
22.11.2003, 17:27
    #32332190
sadsaf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуталси с датами
ну вроде как заработало

спа.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуталси с датами / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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