Gridview 삭제가 올바르게 작동하지 않는 문제가 있습니다. 그것은 DeleteCommand 및 DeleteParameters와 관련이있는 것 같습니다. 예를 들어 DeleteParameter를 사용하는 대신 DeleteCommand에 정적 값을 지정하면 gridview는 정적으로 지정한 값으로 레코드를 삭제합니다. 코드는 다음과 같습니다.Gridview 삭제가 DeleteParameter와 작동하지 않습니다.
<asp:GridView ID="testGridView" runat="server" AllowSorting="True"
AutoGenerateColumns="False" DataKeyNames="Test_ID"
DataSourceID="dsourceTest">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="Test_ID" HeaderText="Test_ID"
InsertVisible="False" ReadOnly="True" SortExpression="Test_ID" />
...MORE COLUMNS HERE...
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="dsourceTest" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:TestConnectionString %>"
SelectCommand="SELECT Test_ID, C2, C3, C4, C5, C6, COALESCE(C7, '') AS C7, C8 FROM TestTable1"
DeleteCommand="DELETE FROM [TestTable1] WHERE [Test_ID] = @Test_ID">
<DeleteParameters>
<asp:Parameter Name="Test_ID" Type="Int32" />
</DeleteParameters>
</asp:SqlDataSource>
위의 DeleteCommand를 그대로 사용하면 삭제가 작동하지 않습니다. 그러나 예를 들어 DeleteCommand="DELETE FROM [TestTable1] WHERE [Test_ID] = 27"
으로 변경하고 Gridview의 삭제 버튼을 누르면 27의 Test_ID를 가진 레코드가 삭제됩니다.
안녕하세요, @ Rob, 네, 저기 있어요, 위의 편집 참조하십시오. 그래도 될까? –