Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не могу разобраться с датой...
|
|||
|---|---|---|---|
|
#18+
Вопрос новичка (опыт работы с ASP.NET и VS2005 – неделя): В таблице (БД MS SQL2005), при заполнении очередной записи, необходимо автоматом вводить текущую дату (обязательное поле). Пошел таким путем: в свойствах столбца с DataTime установил значение по умолчанию (getdate()). Далее в VS2005 создал стандартную форму работы с записями таблицы и удалил ввод даты из формы (и код соответственно подчистил как мог). Вроде бы все работает: данные заносятся в таблицу, дата генерится исправно, но почему-то эти записи не редактируются из формы (после редактирования остаются без изменений) и не удаляются из формы. Та же самая проблема с записями, сделанными вручную в таблицу и в которых дата сама генерировалась. В то же время если форму оставляешь с полем для ввода даты и вручную дату забиваешь (либо руками в таблицу и дату тоже руками), то такие записи работают нормально (редактируются, удаляются). Где грабли? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 14:14 |
|
||
|
Не могу разобраться с датой...
|
|||
|---|---|---|---|
|
#18+
Код в студию пожалуй Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 16:09 |
|
||
|
Не могу разобраться с датой...
|
|||
|---|---|---|---|
|
#18+
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> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 17:29 |
|
||
|
Не могу разобраться с датой...
|
|||
|---|---|---|---|
|
#18+
На AspNetMania.Com выделение красным удаленного кода не видно. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 20:31 |
|
||
|
Не могу разобраться с датой...
|
|||
|---|---|---|---|
|
#18+
Для Optimistic Concurrency, которая тут заюзана, важно ТОЧНОЕ совпадение старых и новых значений. getDate() дает не дату, а точное время с точностью до секунд (видимо, еще и с миллисекундами). Соответственно, полного совпадения добиться нельзя - видимо, в условии надо вставить DATEPART(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 22:23 |
|
||
|
Не могу разобраться с датой...
|
|||
|---|---|---|---|
|
#18+
Если ты не редактируешь дату, но она у тебя принимает участие в запросе - засунь ее в DataKeyNames Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 22:48 |
|
||
|
Не могу разобраться с датой...
|
|||
|---|---|---|---|
|
#18+
Судя по коду, он ее как раз-таки редактирует, иначе она была бы лейблом или хотя бы readonly. А так и получается, что во время биндинга она каким-то макаром усекается - а вот влияет ли это на oldValues (и последующее сравнение в условии), я не знаю... По идее, не должно, но больше и копать вроде некуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 22:59 |
|
||
|
|

start [/forum/topic.php?fid=18&tid=1387205]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 323ms |

| 0 / 0 |
