2011-12-01 2 views
0

마감일을 추적하는 웹 응용 프로그램을 작성하고 있습니다. 이 응용 프로그램을 사용하면 SQL DB에 저장되는 레코드를 업데이트 할 수 있어야합니다. 그러나 내 aspx 파일에서 내 업데이트에 문제가 있습니다.C# - 스칼라 변수 "@ms_id"를 선언해야 함 - 오류

<asp:GridView ID="gv_editMilestones" runat="server" DataSourceID="sql_ds_milestones" 
    CellPadding="4" ForeColor="#333333" GridLines="None" Font-Size="Small" 
    AutoGenerateColumns="False" DataKeyNames="id" Visible="false" 
    onrowupdated="gv_editMilestones_RowUpdated" 
    onrowupdating="gv_editMilestones_RowUpdating" 
    onrowediting="gv_editMilestones_RowEditing"> 
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
    <Columns> 
     <asp:CommandField ShowEditButton="True" /> 
     <asp:BoundField DataField="id" HeaderText="id" SortExpression="id" 
      ReadOnly="True" Visible="false"/> 
     <asp:BoundField DataField="ms_id" HeaderText="ms_id" 
      SortExpression="ms_id" ReadOnly="True"/> 
     <asp:BoundField DataField="ms_description" HeaderText="ms_description" 
      SortExpression="ms_description"/> 
<%--  <asp:BoundField DataField="ms_resp_team" HeaderText="ms_resp_team" 
      SortExpression="ms_resp_team"/>--%> 
     <asp:TemplateField HeaderText="ms_resp_team" SortExpression="ms_resp_team"> 
      <ItemTemplate> 
       <%# Eval("ms_resp_team") %> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:DropDownList ID="DDL_ms_resp_team" runat="server" 
        DataSourceID="sql_ds_ms_resp_team" DataTextField="team_name" 
        DataValueField="id"> 
        <%--SelectedValue='<%# Bind("ms_resp_team") %>'--%> 
       </asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="ms_focal_point" HeaderText="ms_focal_point" 
      SortExpression="ms_focal_point" /> 
     <asp:BoundField DataField="ms_exp_date" HeaderText="ms_exp_date" 
      SortExpression="ms_exp_date" DataFormatString="{0:d}"/> 
     <asp:BoundField DataField="ms_deal" HeaderText="ms_deal" 
      SortExpression="ms_deal" ReadOnly="True"/> 
     <asp:CheckBoxField DataField="ms_active" HeaderText="ms_active" 
      SortExpression="ms_active"/> 
    </Columns> 
    <FooterStyle BackColor="#CCCC99" /> 
    <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" /> 
    <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" /> 
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
    <AlternatingRowStyle BackColor="White" /> 
    <EditRowStyle BackColor="#999999" /> 
</asp:GridView> 
<asp:SqlDataSource ID="sql_ds_milestones" runat="server" 
    ConnectionString="<%$ ConnectionStrings:testServer %>" 
    SelectCommand="SELECT [id] 
          ,[ms_id] 
          ,[ms_description] 
          ,(SELECT [team_name] FROM [NSBP].[dbo].[tbl_teams] as teams 
          WHERE milestones.[ms_resp_team] = teams.[id]) as 'ms_resp_team' 
          ,[ms_focal_point] 
          ,[ms_exp_date] 
          ,(SELECT [deal] FROM [NSBP].[dbo].[tbl_deals] as deals 
          WHERE milestones.[ms_deal] = deals.[id]) as 'ms_deal' 
          ,[ms_active] 
          FROM [NSBP].[dbo].[tbl_milestones] as milestones" 
    UpdateCommand="UPDATE [NSBP].[dbo].[tbl_milestones] 
        SET [ms_description] = @ms_description 
        ,[ms_focal_point] = @ms_focal_point 
        ,[ms_active] = @ms_active 
        WHERE [ms_id] = @ms_id"> 
    <UpdateParameters> 
     <asp:Parameter Name="ms_description" Type="String" /> 
<%--   <asp:Parameter Name="ms_resp_team" Type="String" />--%> 
     <asp:Parameter Name="ms_focal_point" Type="String" /> 
     <asp:Parameter Name="ms_exp_date" Type="DateTime" /> 
     <asp:Parameter Name="ms_active" Type="Boolean" /> 
<%--   <asp:Parameter Name="ms_id" Type="String" />--%> 
    </UpdateParameters> 
</asp:SqlDataSource> 

내 GridView 구조체 + 내 데이터 소스가이 GridView에 바인딩 된 것을 볼 수 있습니다. 내 코드 숨김 파일에서 onrowupdating 함수에 아무 것도 쓰여 있지 않습니다.

당신은 당신의 SQL 문의 where 절에 @ms_id를 사용하는 사전

답변

0

에서 들으하지만 <asp:Parameter ... />이 주석되는 설정 라인.

<%-- <asp:Parameter Name="ms_id" Type="String" /> --%> 

+0

그건 사실 문제가되었습니다. :) Thx! 또한 업데이트는 수행해야 할 작업을 수행하지 않습니다. 기본적으로 나는 그가 필드를 업데이트하기를 원한다 : ms_description, ms_focal_point, ms_exp_date 및 ms_active! 내 2 다른 편집 페이지에서 나는 더 많거나 적은 같은 작업을하고 있지만이 하나의 업데이 트가 수행되지 않습니다. 어떤 아이디어? – KevinP

0

이 줄 다시 시도 : 주석을보십시오

<%--   <asp:Parameter Name="ms_id" Type="String" />--%> 

은 주석 처리 된 것처럼 보이며 SQL where 절에서 사용됩니다.