Изменить / Удалить параметры таблицы - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть таблица, в которой есть ссылки Редактировать и Удалить в каждой строке.Я должен быть в состоянии нажать либо Изменить или Удалить, и он будет делать это.Ссылка редактирования работает, но удаление имеет эту ошибку:

Удаление не поддерживается источником данных 'SqlDataSource1', если не указан DeleteCommand.

Мой источник данных таблиц - sqlDataSource1.

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:PayrollSystem_DBConnectionString %>" 
        ProviderName="<%$ ConnectionStrings:PayrollSystem_DBConnectionString.ProviderName %>"           
        SelectCommand="SELECT [UserID], [UserName], [UserPassword], [SecurityLevel] FROM [tblUserLogin]">
    </asp:SqlDataSource>

</div>
    <div align="center">
    <asp:Label ID="Label1" runat="server" Text="Manage Users"></asp:Label>
<p>
    <asp:Label ID="Label2" runat="server" Text="User Name:"></asp:Label>
    <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
</p>
<p>
    <asp:Label ID="Label3" runat="server" Text="Password:"></asp:Label>
    <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
</p>
        <p>
            <asp:Label ID="Label4" runat="server" Text="Security Level:"></asp:Label>
            <asp:DropDownList ID="drpdwnlstSecurityLevel" runat="server" 
                onselectedindexchanged="drpdwnlstSecurityLevel_SelectedIndexChanged">
                <asp:ListItem>A</asp:ListItem>
                <asp:ListItem>U</asp:ListItem>
            </asp:DropDownList>
</p>
        <p>
            <asp:Button ID="btnAddUser" runat="server" onclick="btnAddUser_Click1" 
    Text="Add User" /> 


</p>
        <p>
            <asp:Label ID="lblError" runat="server"></asp:Label>
</p>

    </div>
<p>
    &nbsp;</p>
            <div align="center">
<asp:GridView ID="tblUserLogin" runat="server" AutoGenerateColumns="False" 
    DataSourceID="AccessDataSource1">
    <Columns>
        <asp:BoundField DataField="UserID" HeaderText="UserID" InsertVisible="False" 
            SortExpression="UserID"></asp:BoundField>
        <asp:BoundField DataField="UserName" HeaderText="UserName" 
            SortExpression="UserName"></asp:BoundField>
        <asp:BoundField DataField="UserPassword" HeaderText="UserPassword" 
            SortExpression="UserPassword"></asp:BoundField>
        <asp:BoundField DataField="SecurityLevel" HeaderText="SecurityLevel" 
            SortExpression="SecurityLevel"></asp:BoundField>
        <asp:CommandField ShowEditButton="True"></asp:CommandField>
        <asp:CommandField ShowDeleteButton="True"></asp:CommandField>




    </Columns>
</asp:GridView>
                </form>
</body>

1 Ответ

1 голос
/ 30 ноября 2011

В таблице нет первичного ключа, поэтому вы не можете автоматически сгенерировать обновление и удалить статистику.

Это, вероятно, что-то вроде этого:

<asp:SqlDataSource
    id="AccessDataSource1"
    runat="server"
    DataSourceMode="DataSet"
    ConnectionString="<%$ ConnectionStrings:PayrollSystem_DBConnectionString %>"  
    SelectCommand="SELECT [UserID], [UserName], [UserPassword], [SecurityLevel] FROM tblUserLogin"
    DeleteCommand="DELETE FROM [tblUserLogin] WHERE UserID=@UserID">
 <DeleteParameters>
    <asp:Parameter Name="UserID" Type="Int32" />
 </DeleteParameters>

</asp:SqlDataSource>

Вы должны добавить команду DeleteCommand в свой SqlDataSource. Конечно, вы должны изменить ConnectionString и tableNames. В вашем DataGridView у вас есть CommandField для отображения DeleteButton. Вот почему ваш SqlDataSource требует DeleteCommand.

Если вы хотите сделать это с помощью мастера, вы можете настроить SqlDataSource, нажав на маленькую стрелку в правом верхнем углу. В дополнительных параметрах вы можете создавать команды вставки, обновления и удаления, потому что они вам, вероятно, также нужны.

Есть хороший учебник по SqlDataSource

...