我有一个有趣的情况,我试图将日期(格式为yyyy-MM-dd
[ie 2013-08-01
] 格式的字符串)传递给 asp.net 网页中的 SQL 存储过程。我已经设置了存储过程,但现在我必须将日期作为参数传递。我需要的日期位于一个单独的 SQL 表中,所以我创建了一个TextBox
(我们称之为endDATE
)提供我需要的日期并且我可以隐藏它以使其在网页上不可见。
问题是TextBox
包含在 aDetailsView
中,所以我似乎无法为存储过程访问它。
我在想我应该尝试将字符串从TextBox
使用 VB 代码传递到存储过程。我该怎么做呢?
代码TextBox
:
<asp:DetailsView ID="LatestDate" DataSourceID="SqlDataSource6" runat="server" AutoGenerateRows="false"
AutoGenerateColumns="False" BorderStyle="None" GridLines="None">
<Fields>
<asp:BoundField DataField="MostRecent" HeaderText="" ReadOnly="True" ShowHeader="False"
DataFormatString="Daily: {0:M/d/yyyy}" ItemStyle-CssClass="boldbig" />
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox runat="server" ID="endDATE" Visible="false" Text='<%# Eval("MostRecent","{0:yyyy-MM-dd}") %>' />
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
存储过程代码[date1
是我要提供的参数]:
<asp:SqlDataSource ID="SqlDataSource7" runat="server"
ConnectionString="<%$ConnectionStrings:ConnectionString3 %>"
ProviderName="<%$ ConnectionStrings:ConnectionString3.ProviderName %>"
SelectCommand="dbo.TheMgr_Total"
SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:QueryStringParameter name="MgrName" DbType="String" QueryStringField="id" />
<asp:Parameter Name="date1" DbType="String" DefaultValue="2013-08-08" />
</SelectParameters>
</asp:SqlDataSource>
更新:史蒂夫的解决方案对我来说看起来不错,但我一直无法让它发挥作用。我的项目改变了方向,所以我不再处理这个特定的问题。