Например: я позволяю пользователю вводить дату как
<asp:TextBox ID="date" runat="server" Width="200px" Text = "20110815"></asp:TextBox>
<ajaxToolkit:CalendarExtender ID="CalendarExtender" runat="server" PopupPosition="BottomLeft" PopupButtonID="date"
TargetControlID="date" Format="yyyyMMdd" FirstDayOfWeek="Monday">
</ajaxToolkit:CalendarExtender>
Проблема в том, что в моей хранимой процедуре я пытался использовать эту строку в качестве типа даты
@StartDate nvarchar(8),
@StartDate_int int =0
AS
BEGIN
select @StartDate_int=CAST(convert(varchar(12),DATEADD(week,DATEDIFF(week,0,@StartDate),0),112) as int)
select * from table where date(has int type)// = @StartDate_int
END
КогдаЯ попытался протестировать эту хранимую процедуру в студии управления MS Server, я определил параметр для @StartDate = 20110101 и хранимая процедура вернула все исправленные строки, но когда я попытался использовать хранимую процедуру в своем проекте asp.net, установите параметр @StartDateдля строки в текстовом поле, он не возвращал ни одной строки.
<asp:SqlDataSource ID="SqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SelectSpecificTimeSheet" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:SessionParameter DefaultValue="user" Name="UserName"
SessionField="loginState" Type="String"/>
<asp:ControlParameter DefaultValue="20110815" ControlID="date" Name="StartDate" PropertyName="Text" Type="String"/>
<asp:Parameter Name="StartDate_int" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
Может кто-нибудь показать мне, что я сделал не так: (