これを「エヴァルは時刻を教えてくれない」と言うつもりだったのですが、かわいすぎると思いました。
私は自分のタイトルに表示される提案された質問とは逆の問題を抱えているので、ここに行きます:
Visual Studio 2008 Pro、SQL Express 2008、Vista。ファシリティ テーブルから結合された情報を使用して、イベント テーブルからレコードを開いている Web プロジェクト。
完全に入力された SQL ファイルに SQL DateTime フィールドがあります。たとえば、4/30/2009 6:30 PM です。
ListView のフィールドは Straight<%# Eval("EventDate") %>
であり、SQLDataSource から取得して Autos ウィンドウを見てわかる限り、私のトレースは午後 6 時 30 分のままです。
私の知る限り、DataSource が設定された後に行われる唯一の指示は、Eval 自体です。
しかし、レンダリング時には、その日時が 4/30/2009 12:00:00 AMとしてページに表示されます。
したがって、フィールドに投入したのと同じ時間を取得するには、Eval ステートメントを解析するために追加の fu が必要であるというのが私の強い信念です。私はまだこれに熟達していないので、提案は大歓迎です。前もって感謝します。
編集:ホセごとにコードを提供します。
情報源:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MeetingsConnectionString %>"
onselecting="SqlDataSource1_Selecting"
SelectCommand="SELECT Events.ID, Events.FacilityID, Events.Room, Events.EventDate, Events.Speaker, Events.Topic, Facilities.ID AS Expr1, Facilities.FacilityName, Facilities.FacilityAddress, Facilities.FacilityCity, Facilities.FacilityState, Facilities.FacilityZip, Facilities.FacilityLat, Facilities.FacilityLong FROM Events INNER JOIN Facilities ON Events.FacilityID = Facilities.ID WHERE (Events.EventDate BETWEEN @EventDate AND @EventDate2) ORDER BY Events.EventDate"
ProviderName="System.Data.SqlClient">
<SelectParameters>
<asp:Parameter Name="EventDate" />
<asp:Parameter Name="EventDate2" />
</SelectParameters>
</asp:SqlDataSource>
リストビュー:
<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1"
DataKeyNames="ID,Expr1">
<AlternatingItemTemplate>
When:<asp:Label ID="EventDateLabel" runat="server" Text='<%# Eval("EventDate") %>' />
...
<ItemTemplate>
When: <asp:Label ID="EventDateLabel" runat="server" Text='<%# Eval("EventDate") %>' /><br />
編集 2: EventDate を EventDate (日付) と EventTime (時間) に分離することで問題を回避しました。適切な値を取得したので、CONVERT または CAST を使用して、SQL クエリで時刻値を軍時間から民間時間 (つまり、午後 6 時 30 分) に変換する作業に進みました。ご回答ありがとうございます。