MyDataSource.SelectParameters["startDate"].DefaultValue =
fromDate.SelectedDate.Date.ToString();
如您所见,我正在 .Net SqlDataSource 中设置参数的默认值。但我认为该字符串输出的格式不正确。 T-SQL 日期时间正确匹配的正确格式是什么?
以下是现在输出的格式:
- 2009 年 5 月 1 日 12:00:00 上午
- 2009 年 5 月 4 日 11:59:59 下午
Edit:在我有 DataSource 之前,它应该被写成 SqlDataSource
这是一些代码
<asp:SqlDataSource ID="MyDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:sampledb %>" SelectCommand="Recording_Select" SelectCommandType="StoredProcedure" OnSelecting="MyDataSource_Selecting">
<SelectParameters>
<asp:ControlParameter ControlID="respondentID" DefaultValue="%" Name="RespondentID" PropertyName="Text" Type="String" />
<asp:SessionParameter Name="projectCode" SessionField="proj" Type="String" />
<asp:ControlParameter ControlID="interviewerList" Name="InterviewerID" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="dispCodeList" Name="dispCode" PropertyName="SelectedValue" Type="Int32" />
<asp:ControlParameter ControlID="fromDate" DefaultValue="1/1/1900" Name="startDate" PropertyName="SelectedValue" Type="DateTime" />
<asp:ControlParameter ControlID="toDate" DefaultValue="1/1/1900" Name="endDate" PropertyName="SelectedValue" Type="DateTime" />
</SelectParameters>
</asp:SqlDataSource>
Edit:好吧,我解决了这个问题,但看起来有点傻。该代码从未调用 DefaultValue,因为始终存在一个值。所以我唯一的解决方案是创建一个新的隐藏标签控件并将正确的日期时间加载到其中。这几乎成功了。我不知道我怎么忽略了这一点。
您可以使用一个 SqlDateTime 结构来实现此目的
DateTime DotNetDateTime = new DateTime(2009, 5, 4);
System.Data.SqlTypes.SqlDateTime sqlDateTime = new System.Data.SqlTypes.SqlDateTime(DotNetDateTime);
或者直接在一行中(因为 SqlDateTime 在构造函数重载之一中采用与 .NET DateTime 类相同的参数):
System.Data.SqlTypes.SqlDateTime sqlDateTime = new System.Data.SqlTypes.SqlDateTime(2009, 5, 4);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)