Asp.net Gridview delete不使用DeleteParameter

Asp.net Gridview delete不使用DeleteParameter,asp.net,gridview,sqldatasource,Asp.net,Gridview,Sqldatasource,我遇到了Gridview删除无法正常工作的问题。它似乎与DeleteCommand和DeleteParameters有关。例如,如果我给delete命令一个静态值,而不是使用delete参数,那么gridview会使用我静态指定的值删除记录。代码如下 <asp:GridView ID="testGridView" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Tes

我遇到了Gridview删除无法正常工作的问题。它似乎与DeleteCommand和DeleteParameters有关。例如,如果我给delete命令一个静态值,而不是使用delete参数,那么gridview会使用我静态指定的值删除记录。代码如下

<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>

…这里有更多专栏。。。

因此,使用上面的Delete命令,删除将不起作用。但是,如果我将其更改为
DeleteCommand=“DELETE FROM[TestTable1]其中[Test\u ID]=27”
,然后我在Gridview中点击一个删除按钮,它将删除测试ID为27的记录。

我找到了答案……我不得不将DeleteCommand更改为
DeleteCommand=“DELETE FROM[ClientService\u AP]其中[Action\u ID]=@original\u Test\u ID“
因为我在SqlDataSource中也有语句
OldValuesParameterFormatString=“original\u{0}”

您的定义中包括Test\u ID吗?嗨@Rob,是的,它在那里,请参见上面的编辑。但这有关系吗?