powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не могу разобраться с датой...
8 сообщений из 8, страница 1 из 1
Не могу разобраться с датой...
    #34157717
ASPen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос новичка (опыт работы с ASP.NET и VS2005 – неделя):
В таблице (БД MS SQL2005), при заполнении очередной записи, необходимо автоматом вводить текущую дату (обязательное поле). Пошел таким путем: в свойствах столбца с DataTime установил значение по умолчанию (getdate()). Далее в VS2005 создал стандартную форму работы с записями таблицы и удалил ввод даты из формы (и код соответственно подчистил как мог). Вроде бы все работает: данные заносятся в таблицу, дата генерится исправно, но почему-то эти записи не редактируются из формы (после редактирования остаются без изменений) и не удаляются из формы. Та же самая проблема с записями, сделанными вручную в таблицу и в которых дата сама генерировалась.
В то же время если форму оставляешь с полем для ввода даты и вручную дату забиваешь (либо руками в таблицу и дату тоже руками), то такие записи работают нормально (редактируются, удаляются).

Где грабли?
Спасибо.
...
Рейтинг: 0 / 0
Не могу разобраться с датой...
    #34158324
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код в студию пожалуй

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Не могу разобраться с датой...
    #34158632
ASPen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimon aka Manowar
Код в студию пожалуй


Например для таблицы test с полями id(int), date(datetime) и value(nvarchar) создал стандартную FormView. Далее идет исходный код формы. Красным помечено что я выкинул.


<asp:FormView ID="FormView1" runat="server" AllowPaging="True" DataKeyNames="id"
DataSourceID="testSQL">
<EditItemTemplate>
id:
<asp:Label ID="idLabel1" runat="server" Text='<%# Eval("id") %>'></asp:Label><br />
date:
<asp:TextBox ID="dateTextBox" runat="server" Text='<%# Bind("date") %>'>
</asp:TextBox><br />
value:
<asp:TextBox ID="valueTextBox" runat="server" Text='<%# Bind("value") %>'>
</asp:TextBox><br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update"
Text="Update">
</asp:LinkButton>
<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
Text="Cancel">
</asp:LinkButton>
</EditItemTemplate>
<InsertItemTemplate>
date:
<asp:TextBox ID="dateTextBox" runat="server" Text='<%# Bind("date") %>'>
</asp:TextBox><br />
value:
<asp:TextBox ID="valueTextBox" runat="server" Text='<%# Bind("value") %>'>
</asp:TextBox><br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
Text="Insert">
</asp:LinkButton>
<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
Text="Cancel">
</asp:LinkButton>
</InsertItemTemplate>
<ItemTemplate>
id:
<asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>'></asp:Label><br />
date:
<asp:Label ID="dateLabel" runat="server" Text='<%# Bind("date") %>'></asp:Label><br />
value:
<asp:Label ID="valueLabel" runat="server" Text='<%# Bind("value") %>'></asp:Label><br />
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit"
Text="Edit">
</asp:LinkButton>
<asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False" CommandName="Delete"
Text="Delete">
</asp:LinkButton>
<asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New"
Text="New">
</asp:LinkButton>
</ItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="testSQL" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:reportConnectionString %>" DeleteCommand="DELETE FROM [test] WHERE [id] = @original_id AND [date] = @original_date AND [value] = @original_value"
InsertCommand="INSERT INTO [test] ([date],[value]) VALUES (@date, @value)" OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [test]" UpdateCommand="UPDATE [test] SET [date] = @date, [value] = @value WHERE [id] = @original_id AND [date] = @original_date AND [value] = @original_value">
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_date" Type="DateTime" />
<asp:Parameter Name="original_value" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="date" Type="DateTime" />
<asp:Parameter Name="value" Type="String" />
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_date" Type="DateTime" />
<asp:Parameter Name="original_value" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="date" Type="DateTime" />
<asp:Parameter Name="value" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
...
Рейтинг: 0 / 0
Не могу разобраться с датой...
    #34159086
ASPen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На AspNetMania.Com выделение красным удаленного кода не видно. :(
...
Рейтинг: 0 / 0
Не могу разобраться с датой...
    #34159215
botpride
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для Optimistic Concurrency, которая тут заюзана, важно ТОЧНОЕ совпадение старых и новых значений. getDate() дает не дату, а точное время с точностью до секунд (видимо, еще и с миллисекундами). Соответственно, полного совпадения добиться нельзя - видимо, в условии надо вставить DATEPART(...)
...
Рейтинг: 0 / 0
Не могу разобраться с датой...
    #34159249
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если ты не редактируешь дату, но она у тебя принимает участие в запросе - засунь ее в DataKeyNames

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Не могу разобраться с датой...
    #34159263
botpride
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Судя по коду, он ее как раз-таки редактирует, иначе она была бы лейблом или хотя бы readonly. А так и получается, что во время биндинга она каким-то макаром усекается - а вот влияет ли это на oldValues (и последующее сравнение в условии), я не знаю... По идее, не должно, но больше и копать вроде некуда.
...
Рейтинг: 0 / 0
Не могу разобраться с датой...
    #34159277
ASPen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поменял в таблице тип данных на SMALLDATETIME и всё заработало. Видимо причина была где-то там, где указал botpride.
Всем спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не могу разобраться с датой...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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