2017-02-11 1 views
0

sqldatasource를 사용하여 Oracle 테이블에서 데이터를 표시 및 삭제하고 데이터를 gridview 및 detailsview 컨트롤에 표시 할 수 있지만 링크 삭제 버튼을 클릭하면 삭제할 수 없습니다 세부의 바닥이 아래에있는 내 웹 페이지 코드를 참조 뷰 : 나는 이유는 알려져 있지 않습니다, 나는 삭제 링크 버튼을 클릭하면되지만, 데이터를 삭제할 수 없습니다링크 삭제 버튼이 asp.net에서 세부 정보보기에서 작동하지 않습니다

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Master.aspx.cs" Inherits="HarnessMaintain.Pages.Master" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" 
      DataSourceID="SqlDataSource1"> 
      <Columns> 
       <asp:CommandField ShowSelectButton="True" /> 
       <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> 
       <asp:BoundField DataField="MODE_TYPE" HeaderText="MODE_TYPE" SortExpression="MODE_TYPE" /> 
       <asp:BoundField DataField="PARTNER_NAME" HeaderText="PARTNER_NAME" SortExpression="PARTNER_NAME" /> 
      </Columns> 
     </asp:GridView> 
     <br /> 
     <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" DataSourceID="SqlDataSource2" 
      OnItemDeleted="DetailsView1_ItemDeleted" OnItemInserted="DetailsView1_ItemInserted" 
      OnItemUpdated="DetailsView1_ItemUpdated"> 
      <Fields> 
       <asp:CommandField ShowDeleteButton="True" /> 
      </Fields> 
     </asp:DetailsView> 
     <br /> 
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
      ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT &quot;ID&quot;, &quot;MODE_TYPE&quot;, &quot;PARTNER_NAME&quot; FROM &quot;MSWSCEMASTER&quot; ORDER BY &quot;ID&quot;"> 
     </asp:SqlDataSource> 
     <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
      DeleteCommand="DELETE FROM &quot;MSWSCEMASTER&quot; WHERE &quot;ID&quot; =:ID" 
      ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM &quot;MSWSCEMASTER&quot; WHERE (&quot;ID&quot; = :ID)"> 
      <DeleteParameters> 
       <asp:Parameter Name=":ID" Type="Decimal" /> 
      </DeleteParameters> 
      <SelectParameters> 
       <asp:ControlParameter ControlID="GridView1" Name="ID" PropertyName="SelectedValue" 
        Type="Decimal" /> 
      </SelectParameters> 
     </asp:SqlDataSource> 
    </div> 
    </form> 
</body> 
</html> 

을 누군가가 나에게 이유를 알 수 있습니다 또는 이 문제를 해결하는 방법은 무엇입니까?

enter image description here

+0

데이터가 삭제되지 않는다고 생각하는 이유는 무엇입니까? 링크 삭제를 클릭하면 오류가 발생합니까? –

+0

오류없이 – user2575502

+0

아래에서 제공 한 솔루션을 사용해 보셨습니까? –

답변

0

당신은 DeteteParameter 거기에서 매개 변수 값을 얻을 수 있도록 위해 DetailsView의 DataKeyNames 속성을 설정해야합니다.

<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" DataSourceID="SqlDataSource2" DataKeyNames="ID" 
     OnItemDeleted="DetailsView1_ItemDeleted" OnItemInserted="DetailsView1_ItemInserted" 
     OnItemUpdated="DetailsView1_ItemUpdated"> 
    <Fields> 
     <asp:CommandField ShowDeleteButton="True" /> 
    </Fields> 
</asp:DetailsView> 
관련 문제