2009-08-28 3 views
2

GridView 내에서 표시 및 업데이트를 위해 DateTime을 분리하고 싶습니다. SqlDataSource의 UpdateParameters에서 어떻게 재결합합니까? 예를C# GridView의 DateTime 업데이트 필드

를 들어

<asp:SqlDataSource ID="uxTravelTripMeetingDataSource" runat="server" 
      ConnectionString="<%$ ConnectionStrings:MGO %>" 
      ProviderName="<%$ ConnectionStrings:MGO.ProviderName %>" 
      SelectCommand="select * from v_travel_meeting t where travel_trip_id = :travel_trip_id" 
      UpdateCommand="update travel_prospect set person = :person, meeting_date = :meeting_date where prospect_id = :prospect_id and travel_trip_id = :travel_trip_id " 
      <SelectParameters> 
       <asp:QueryStringParameter Name="travel_trip_id" QueryStringField="id" /> 
      </SelectParameters> 
      <UpdateParameters> 
       <asp:Parameter Name="person" /> 
       <asp:Parameter Name="prospect_id" /> 
       <asp:Parameter Name="travel_trip_id"/> 
       <asp:Parameter Name="meeting_date" Type="DateTime" /> 
      </UpdateParameters> 
     </asp:SqlDataSource> 

     <asp:GridView ID="uxTravelTripMeetingGridView" runat="server" 
      DataSourceID="uxTravelTripMeetingDataSource" AutoGenerateColumns="False" 
      DataKeyNames="travel_trip_id,prospect_id"> 
      <Columns> 
       <asp:CommandField ShowEditButton="True" /> 
       <asp:TemplateField HeaderText="Prospect"> 
       <ItemTemplate> 
        <a href="something.aspx?prospectid=<%# Eval("prospect_id") %>&height=500&width=600" title="caption" class="thickbox" ><%# Eval("prospect_name")%> 
       </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="person" HeaderText="Person" />      
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:Label ID="Label3" runat="server" 
          Text='<%# Bind("meeting_date", "{0:d}") %>'></asp:Label> 
        </ItemTemplate> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox3" runat="server" 
          Text='<%# Bind("meeting_date", "{0:d}") %>' /> 
        </EditItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:Label ID="Label3" runat="server" 
          Text='<%# Bind("Meeting_time") %>'></asp:Label>&nbsp; 
         <asp:Label ID="Label4" runat="server" 
          Text='<%# Bind("Meeting_am_pm") %>'></asp:Label> 
        </ItemTemplate> 
        <EditItemTemplate> 
           <asp:ObjectDataSource ID="ds15Min" runat="server" OldValuesParameterFormatString="original_{0}" 
      SelectMethod="DDLFifteenMin" TypeName="App" /> 

         <asp:DropDownList ID="DropDownList2" runat="server" 
         DataSourceID="ds15Min" DataTextField="time" DataValueField="display" 
          SelectedValue='<%# Bind("meeting_date","{0:t}") %>' > 
           <asp:ListItem Value=" "> </asp:ListItem> 
          </asp:DropDownList> 
        </EditItemTemplate> 
       </asp:TemplateField> 
      </Columns> 

     </asp:GridView> 

감사합니다!

답변

1

업데이트 명령을

update travel_prospect set person = :person, meeting_date = DATEADD(n,@Date,@Time) 
where prospect_id = :prospect_id and travel_trip_id = :travel_trip_id 

업데이트 매개 변수 :

<asp:Parameter Name="Date" Type="DateTime" /> 
<asp:Parameter Name="Time" Type="String" /> 

지금이 솔루션은 사용자가 입력하거나 무엇 N에 (분 날짜의 시간 부분을 계산해야한다는 것을 의미합니다 DATEADD는 올바르게 작성하기 위해). 당신이하는 일은 당신에게 달려 있습니다.

+0

그런 종류의 작품 ... 나는 오라클을 사용하고 있지만 DATEADD를 자신의 [to_date (To_Char (날짜) || ''|| : 시간, 'DD-MON-YY HH : MI AM' ], 나에게 명확하지 않은 유일한 방법은 구성된 매개 변수 이름에 gridview의 매개 변수를 바인딩하는 것입니다. – Lloyd

+1

나에게 분명하지 않은 유일한 것은 원래 필드에서 분리 된 매개 변수에 gridview의 매개 변수를 바인딩하는 것입니다. – Lloyd