1

私はこのグリッドビューを持っていて、sqldatasource を使用しています

これは私の選択コマンドです。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:TAXIConnectionString %>" 
    SelectCommand="SELECT [TripId] FROM [BookingMaster] 
                    WHERE(([PickupLocation] = @PickupLocation or @PickupLocation is null) 
                    AND ([DestinationLocation] = @DestinationLocation 
                    or @DestinationLocation is null ) 
                    AND ([Status] = @Status or @Status is null) 
                    AND (cast([PickupDateTime] as date) = @PickupDateTime 
                    or @PickupDateTime is null))" 
     CancelSelectOnNullParameter="False">
         <SelectParameters>
             <asp:ControlParameter ControlID="ddPickup" Name="PickupLocation" 
                  PropertyName="SelectedValue" Type="String" 
                  ConvertEmptyStringToNull="true" />
            <asp:ControlParameter ControlID="ddDestination" Name="DestinationLocation" 
                 PropertyName="SelectedValue" Type="String" 
                 ConvertEmptyStringToNull="true" />
            <asp:ControlParameter ControlID="ddStatus" Name="Status" 
                 PropertyName="SelectedValue" Type="String" 
                 ConvertEmptyStringToNull="true" />
            <asp:ControlParameter ControlID="txtBookingDate" Name="PickupDateTime" 
                 PropertyName="Text" Type="String" ConvertEmptyStringToNull="true" />
        </SelectParameters>
    </asp:SqlDataSource>    

しかし、13日以降の日付を選択するとエラーが発生しました...

Server Error in '/' Application.

Conversion failed when converting date and/or time from character string.

これの何が悪いの?

4

1 に答える 1

2

私にはローカリゼーションの問題のように聞こえます。日付を dd/mm/yy 形式で入力していると思いますが、ASP.NET または SQL Server は、mm/dd/yy 形式を期待するインバリアント カルチャまたは en-US でそれらを解析しようとしています。またはその反対。日付を SQL Server に渡すときは、 を使用して既に解析しておくか、完全に明確な形式をDateTime.Parse使用して文字列として渡すことをお勧めします。yyyy-MM-dd HH:mm:ss

于 2013-05-07T03:41:12.267 に答える