如何使用 ObjectDataSource 将 DataObject 中的字符串转换为日期时间
我有一个用于在数据库(sql server 2008)中选择、更新和删除记录的类和一个用于表示表记录的类,我认为这称为“活动记录”设计模式。 现在,我有了可以编辑、选择和删除项目的 GriwView。该网格的数据源是ObjectDataSource:
<asp:ObjectDataSource ID="ObjectDataSource" runat="server"
TypeName="DBOrdinacniDoby.Hours"
DataObjectTypeName="DBOrdinacniDoby.Hour"
onobjectcreating="ObjectDataSource_ObjectCreating"
SelectMethod="GetAll"
UpdateMethod="EditHour">
</asp:ObjectDataSource>
网格中的类型如下:int、nvarchar、日期、时间和位。 方法的EditHour参数是Hour类。 Hour 具有不带参数的构造,但是当程序设置属性“DateFrom” - C# 中的 DataTime 类型和 SQL Server 中的 Date 时,出现异常:System.InvalidOperationException,无法将表单字符串转换为 DateTime。
请帮忙,我该如何解决? 谢谢,Sebastian
编辑:我尝试为 GridView RowUpdating 添加事件处理程序并手动转换 DateTime,如下所示:
e.NewValues[1] = Convert.ToDateTime(e.NewValues[1].ToString());
但仍然不起作用...:(
I have one class for selecting, updating and deleting record in db (sql server 2008) and one class for represent table record, i think it's call 'Activ record' design pattern.
Now, I have GriwView with editing, selecting and deleting items. Data source for this grid is ObjectDataSource:
<asp:ObjectDataSource ID="ObjectDataSource" runat="server"
TypeName="DBOrdinacniDoby.Hours"
DataObjectTypeName="DBOrdinacniDoby.Hour"
onobjectcreating="ObjectDataSource_ObjectCreating"
SelectMethod="GetAll"
UpdateMethod="EditHour">
</asp:ObjectDataSource>
In grid is types like: int, nvarchar, date, time and bit.
Method's EditHour parameter is class of Hour.
Hour have construct without parameters, but when program sets property 'DateFrom' - DataTime type in C# and Date in SQL Server, I got Exception: System.InvalidOperationException, Can't convert form string to DateTime.
Please help, how can I fix it?
Thanks, Sebastian
EDIT: I try add event handler for GridView RowUpdating and manually convert do DateTime like this:
e.NewValues[1] = Convert.ToDateTime(e.NewValues[1].ToString());
But still not working... :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试在定义参数类型的位置添加 UpdateParametes。
为我工作。
Try to add UpdateParametes where you define Type of parameter.
Worked for me.
解决此问题的一种方法是订阅
ObjectDataSource
的Updating Event
。http://msdn.microsoft.com /en-us/library/system.web.ui.webcontrols.objectdatasource.updating.aspx
来自我的一个应用程序的代码示例(其中 Article 是我的业务层类):
e.InputParameters["item"]
必须与业务层方法的参数名称匹配:就我而言:
One way to fix this, is to subscribe to the
Updating Event
of theObjectDataSource
.http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.updating.aspx
Codesample from one of my apps (where Article is my Business Layer class):
e.InputParameters["item"]
must match the parametername of your Business Layer method:In my case: