Member 12634216 Ответов: 1

GridView в веб-ошибки, основанные


Сэр,
Я получаю эту ошибку при обновлении или удалении данных в gridview.
“Необходимо объявить скалярную переменную @id".
Например, команда Delete = " удалить из [таблицы]", где [id]=@id”
Я видел приведенную выше команду удаления в исходном коде страницы.
Пожалуйста, скажите мне, где объявить @id? Пожалуйста, решите эту проблему более подробно. У меня есть таблица с 3 столбцами id (int), name (varchar) и email (varchar).
Это веб-основе GridView в котором я правда собственность Автоформирования-редактировать и удалить.
С уважением.
Хасан

Что я уже пробовал:

Sir,
I am getting this ERROR while updating or deleting data in gridview.
"Must declare scalar variable @id".
Delete command for example: delete command="DELETE FROM [table]" WHERE [id]=@id" 
I saw the above delete command in source of the page.
Please tell me where to declare @id? Please solve the problem in details. I have a table with 3 columns id (int), name (varchar) & email (varchar).
This is a web based gridview where I true Autogenerate property of edit and delete.
Regards.
Hasan

1 Ответов

Рейтинг:
2

Er Parul

Привет,

У вас есть возможность создавать Параметры Обновления и удаления. Вы передали имена данных ? Как у вас есть ID в вашей таблице, так и DataKeyNames должны быть ID. Пожалуйста, обратитесь к следующему коду.
В коде вы можете увидеть параметры для обновления и удаления, такие как

<UpdateParameters>
                <asp:Parameter Name="Mobile" />
                <asp:Parameter Name="Email" />
            </UpdateParameters>
            
            <DeleteParameters>
                <asp:Parameter Name="EmpID" /> 
            </DeleteParameters>

Полный код, как показано ниже
<html>
<head>
    <title>GridView Edit and Delete Row</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView

            ID="GridView1" Font-Names="Arial" Font-Size="Smaller" 

            AutoGenerateColumns="False" 

            AutoGenerateEditButton="True" 

            AutoGenerateDeleteButton="False" 

            DataSourceID="SqlDataSource1" 

            DataKeyNames="EmpID"

            runat="server">
            
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <%--ADD THE DELETE LINK BUTTON--%>
                        <asp:LinkButton Runat="server" 

                            OnClientClick ="return confirm('Are you sure you?');"

                            CommandName="Delete">Delete</asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
            
                <%--DATA BOUND COLUMNS--%>
                <asp:BoundField DataField="EmpID" HeaderText="EmpID" 

                    SortExpression="EmpID" ReadOnly="true" />
                <asp:BoundField DataField="EmpName" HeaderText="EmpName" 

                    SortExpression="EmpName" ReadOnly="true" />
                <asp:BoundField DataField="Mobile" HeaderText="Mobile" 

                    SortExpression="Mobile" />
                <asp:BoundField DataField="Email" HeaderText="Email" 

                    SortExpression="Email" />
            </Columns>
        </asp:GridView>
        
        <%--THE SQL DATA SOURCE CONNECTED WITH THE GRIDVIEW--%>
        <asp:SqlDataSource

            ID="SqlDataSource1" runat="server" 

            ConnectionString="<%$ ConnectionStrings:DNA_CLASSIFIEDConnectionString %>"

            SelectCommand="SELECT [EmpID], [EmpName], [Mobile], [Email] FROM [EmployeeDetails]"

            UpdateCommand="UPDATE EmployeeDetails SET Mobile = @Mobile, Email = @Email 
                WHERE EmpID = @EmpID"

            DeleteCommand="DELETE FROM EmployeeDetails WHERE EmpID = @EmpID">
           
            <UpdateParameters>
                <asp:Parameter Name="Mobile" />
                <asp:Parameter Name="Email" />
            </UpdateParameters>
            
            <DeleteParameters>
                <asp:Parameter Name="EmpID" /> 
            </DeleteParameters>
            
        </asp:SqlDataSource>
    </div>
    </form>
</body>
</html>

Пожалуйста, обратитесь по ссылке(GridView можно редактировать, обновлять и удалять пример - простой GridView в Примере с строки редактировать и удалять опции - C# и Vb.Net[^]) для детального знания.