C# ASP.NET Gridview按钮

C# ASP.NET Gridview按钮,c#,asp.net,sql,gridview,C#,Asp.net,Sql,Gridview,我有一个3列的Gridview(CompanyName、Volume、counter)。我希望计数器列是所有按钮,当用户单击按钮时,计数器将递增1。我不确定如何正确设置update命令。以下是我到目前为止的情况: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EmptyDataText="There

我有一个3列的Gridview(CompanyName、Volume、counter)。我希望计数器列是所有按钮,当用户单击按钮时,计数器将递增1。我不确定如何正确设置update命令。以下是我到目前为止的情况:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="SqlDataSource1" 
        EmptyDataText="There are no data records to display.">
        <Columns>
            <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" 
                SortExpression="CompanyName" />
            <asp:BoundField DataField="Volume" HeaderText="Volume" 
                SortExpression="Volume" />
            <asp:ButtonField DataTextField="counter" HeaderText="counter" 
            ButtonType="button"/>

        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:LiquorStoreConnectionString1 %>" 
        ProviderName="<%$ ConnectionStrings:LiquorStoreConnectionString1.ProviderName %>" 
        SelectCommand="SELECT [CompanyName], [Volume], [counter] FROM [Company]">
    </asp:SqlDataSource>


我所需要做的就是每次按下特定行上的按钮时递增1

是否要更新数据库? 您可以在gridview行命令中捕获按钮单击事件。 看看下面给出的链接
是否要更新数据库? 您可以在gridview行命令中捕获按钮单击事件。 看看下面给出的链接 您可以尝试以下方法:

... UpdateCommand="Update COMPANY SET counter=@Counter +1 WHERE CopmanyName=@Company"
<columns> 
    <asp:BoundField HeaderText="counter" DataField="Counter" />             
</columns>
。。。UpdateCommand=“更新公司设置计数器=@counter+1,其中CopmanyName=@COMPANY”
确保绑定字段名称正确。 我还没有测试过这个+1是否适用于绑定字段。如果没有,则必须使用onrow命令手动更新数据库,然后可以重新绑定视图并查看更新的计数器。更重要的是,我没有看到一个好的主键为您的公司,所以你可以做更新。。。因此,我的示例使用的是公司名称,这就是危险。

您可以尝试以下方法:

... UpdateCommand="Update COMPANY SET counter=@Counter +1 WHERE CopmanyName=@Company"
<columns> 
    <asp:BoundField HeaderText="counter" DataField="Counter" />             
</columns>
。。。UpdateCommand=“更新公司设置计数器=@counter+1,其中CopmanyName=@COMPANY”
确保绑定字段名称正确。
我还没有测试过这个+1是否适用于绑定字段。如果没有,则必须使用onrow命令手动更新数据库,然后可以重新绑定视图并查看更新的计数器。更重要的是,我没有看到一个好的主键为您的公司,所以你可以做更新。。。因此,我的示例使用的是公司名称,这就是危险。

我已编辑了您的标题。请看“”,其中的共识是“不,他们不应该”。谢谢你,约翰!很抱歉这么做,我会阅读你提供的链接:)我已经编辑了你的标题。请看“”,其中的共识是“不,他们不应该”。谢谢你,约翰!很抱歉这样做,我将阅读您提供的链接:)嗨,Karthi,是的,如果可能的话,我希望它在每次单击后更新数据库。您能让row命令工作吗??只需创建一个增加值的存储过程,并在row commandHi Karthi中调用它,是的,如果可能的话,我希望它在每次单击后更新数据库。您能让row命令工作吗??只需创建一个递增值的存储过程,并在commandHi bugnuker行中调用它!我刚刚创建了一个名为Id的主键,它使用updatecommand
updatecommand=“updatecompany SET counter=@counter+1,其中Id=@Id”
这只是将每一列行递增一个。我希望所有计数器行都为零,除非有人单击其中一行,然后该特定行变为1。如果这有意义的话?我想你可能需要执行onrow命令。在设计模式下单击gridview,然后在gridview的属性上,您将看到一个“闪电”螺栓图标。点击这个。然后应该看到“OnRowCommand”,如果双击它,它将在代码中自动为您创建事件。现在您只需要编写一个SQL更新命令。您将在“where”子句的参数(e)中包含RowID(如果已正确绑定)。我没有“OnRowCommand”,但是我有“RowCommand”,当我双击它时,它会给我
受保护的void GridViewCommandEventHandler(对象发送方,GridViewCommandEventArgs e){}
,这就是您想要的。e将具有一些行属性。比如e[“COLUMNNAME”]之类的。您可以在这里手动运行更新命令。嗨,bugnuker!我刚刚创建了一个名为Id的主键,它使用updatecommand
updatecommand=“updatecompany SET counter=@counter+1,其中Id=@Id”
这只是将每一列行递增一个。我希望所有计数器行都为零,除非有人单击其中一行,然后该特定行变为1。如果这有意义的话?我想你可能需要执行onrow命令。在设计模式下单击gridview,然后在gridview的属性上,您将看到一个“闪电”螺栓图标。点击这个。然后应该看到“OnRowCommand”,如果双击它,它将在代码中自动为您创建事件。现在您只需要编写一个SQL更新命令。您将在“where”子句的参数(e)中包含RowID(如果已正确绑定)。我没有“OnRowCommand”,但是我有“RowCommand”,当我双击它时,它会给我
受保护的void GridViewCommandEventHandler(对象发送方,GridViewCommandEventArgs e){}
,这就是您想要的。e将具有一些行属性。比如e[“COLUMNNAME”]之类的。您可以在此处手动运行更新命令。