小弟我需要建个投票系统,需要每点击提交一次时数据库对应选民的piaoshu列加1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="query.aspx.cs" Inherits="Default3" %><%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body style="text-align: center">
    <form id="form1" runat="server">
    <div style="text-align: center">
        <asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatColumns="5" RepeatDirection="Horizontal" OnSelectedIndexChanged="DataList1_SelectedIndexChanged1">
            <ItemTemplate>
                <table>
                    <tr>
                        <td style="width: 100px">
                         <a href='../<%#Eval("image") %>' target="_blank" >                    
                        <asp:Image ID="Image1" runat="server" ImageUrl='<%# "../" + Eval("image") %>' Height="32"/></a>
                        </td>
                    </tr>
                    <tr>
                        <td style="width: 100px">
                        <div align="center"><%# Eval("name") %></div>
                        </td>
                    </tr>
                    <tr>
                        <td style="width: 100px">
                            <input name="name"  type="radio" value='<%# Eval("name") %>'/>
                        </td>
                    </tr>
                    <tr>
                        <td style="width: 100px">
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
            <FooterTemplate>
                <asp:Button ID="Button1" runat="server" Text="提交" OnClick="Button1_Click" />
            </FooterTemplate>        
        </asp:DataList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:mydatabaseConnectionString %>"  SelectCommand="SELECT * FROM wbtp1"  ProviderName="<%$ ConnectionStrings:mydatabaseConnectionString.ProviderName %>"></asp:SqlDataSource>
    </div>
    </form>
</body>
</html>
C#ASP.NETMysql

解决方案 »

  1.   

    假设,点击了id等于1的那个。那么就执行一条sql语句update 表名 set toupiao=toupiao+1 where id=1
    前提条件,toupiao的类型是int
      

  2.   

    当然,数据库里的toupiao你要给个初值0
      

  3.   

    先select当前ID的 toupiao的值,点击时间触发,update这个值不就行了么
      

  4.   

    先select当前ID的 toupiao的值,点击时间触发,update这个值不就行了么不行,要是在你select值的时候别人也点击了呢?假设之前那个值是5,你select了得到5,此时别人也select也是5。你update上去就是6,人家在update上去也是6。可是我们都知道其实这个值应该是7才对。所以只用一条sql语句而不是两条
      

  5.   

    先select当前ID的 toupiao的值,点击时间触发,update这个值不就行了么不行,要是在你select值的时候别人也点击了呢?假设之前那个值是5,你select了得到5,此时别人也select也是5。你update上去就是6,人家在update上去也是6。可是我们都知道其实这个值应该是7才对。所以只用一条sql语句而不是两条不会那么巧吧
      

  6.   

    我现在是这么写的
    <input name="id"  type="radio" value='<%# Eval("id") %>'/>
    cmd4.CommandText = "update wbtp1 set toupiao=toupiao+1 WHERE id="+ Request.Params["id"] +" ";
      

  7.   

    你只需要获取他的ip,然后存入session中,并设置过期时间,点击按钮的时候先确定有木有这个ip。如果有就不执行update,否则就执行
      

  8.   

    protected void Button1_Click(object sender, EventArgs e)
        {
            string ip = Request.UserHostAddress;
            if (Session[ip] == null)
            {
                //执行点击投票
                Session.Add(ip, "");
                Session.Timeout = 2;
            }
            else
            {
                //指定的时间内多次点,提示或者是不理他之类的
            }
            
        }