4
Sep/080
Sep/080
Enquete em C#.net
Olá galera! aqui vo postar uma enquete que talves será útil a vcs!
bom vamos criar nossos buttons e salvar o arquivo como: Home_Enquete.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Cs/Home_Enquete.cs" Inherits="ExecutarEnquete" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Minha Enquete</title> </head> <body> <asp:Label ID="LbMsnVazio" Font-Name="verdana" ForeColor="#FF0000" Font-Size="12px" runat="server" /> <asp:Label ID="LbMsnEnquete" Font-Name="verdana" ForeColor="#FF0000" Font-Size="12px" runat="server" /> <asp:Label ID="MsgVoto" Font-Name="verdana" ForeColor="#009933" Font-Size="12px" runat="server" /> <br> Qual a linguagem mais vantagiosa? <br> <form runat="server"> <br> <asp:RadioButtonList ID="CmpVoto" runat="server"> <asp:ListItem Value="1">C#.net</asp:ListItem> <asp:ListItem Value="2">Java</asp:ListItem> <asp:ListItem Value="3">PHP</asp:ListItem> </asp:RadioButtonList> <br> <asp:Button ID="Botao" Text=" Votar " OnClick="AcaoVotar" runat="server" /> </form> <br> <asp:HyperLink NavigateUrl="Resultado_Enquete.aspx" Text="Ver Resultado" runat="server" /> </body> </html>
feito issoo vamos criar agora a parte mecânica de nossa enquete rsrs...
salvaremos nosso arquivo como: Home_Enquete.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.Odbc;
public partial class ExecutarEnquete : System.Web.UI.Page{
public void AcaoVotar(object Sender, EventArgs e){
OdbcConnection Conexao = new OdbcConnection("Driver=MySQL ODBC 3.51 Driver; DATABASE=CaBo_GeL; Server=LocalHost; uid=; pwd=;");
Conexao.Open();
string VarCmpVoto = Request.Form["CmpVoto"];
string VarIpCliente = Request.ServerVariables["REMOTE_ADDR"];
// Faz a consulta se existe o IP do cara.
OdbcCommand VerificarIP = new OdbcCommand("Select * From Ips Where IP='"+VarIpCliente+"'",Conexao);
OdbcDataReader ObjlocIP=VerificarIP.ExecuteReader();
if(ObjlocIP.HasRows){
while(ObjlocIP.Read()){
LbMsnEnquete.Text="Você já votou nesta enquete!";
MsgVoto.Text ="";
}
}else{
// Caso não exista o IP inserir e votar normalmente
OdbcCommand InserirIP = new OdbcCommand("Insert into Ips(IP) Values('"+VarIpCliente+"')",Conexao);
InserirIP.ExecuteNonQuery();
// Seleciona os campos com valor para fazer o calculo
OdbcCommand Comando = new OdbcCommand("Select * From Enquete",Conexao);
OdbcDataReader Objloc=Comando.ExecuteReader();
Objloc.Read();
int a_VarCodigo = Convert.ToInt32(Objloc["CodigoEnq"]);
int b_VarOpcao1 = Convert.ToInt32(Objloc["Opcao1"]) + 1;
int c_VarOpcao2 = Convert.ToInt32(Objloc["Opcao2"]) + 1;
int d_VarOpcao3 = Convert.ToInt32(Objloc["Opcao3"]) + 1;
if(VarCmpVoto == "1"){
OdbcCommand Comando1 = new OdbcCommand("UPdate Enquete Set Opcao1='"+b_VarOpcao1+"' Where CodigoEnq="+a_VarCodigo,Conexao);
Comando1.ExecuteNonQuery();
MsgVoto.Text="Voto confirmado <b>C#</b>!<br>";
}
if(VarCmpVoto == "2"){
OdbcCommand Comando2 = new OdbcCommand("UPdate Enquete Set Opcao2='"+c_VarOpcao2+"' Where CodigoEnq="+a_VarCodigo,Conexao);
Comando2.ExecuteNonQuery();
MsgVoto.Text="Voto confirmado <b>Java</b>!<br>";
}
if(VarCmpVoto == "3"){
OdbcCommand Comando3 = new OdbcCommand("UPdate Enquete Set Opcao3='"+d_VarOpcao3+"' Where CodigoEnq="+a_VarCodigo,Conexao);
Comando3.ExecuteNonQuery();
MsgVoto.Text="Voto confirmado <b>PHP</b>!<br>";
}
Conexao.Close();
}
}
}
prontoo!! agora teremos que mostrar o resultado de nossa enquete ne verdade?
vamos da o nome a esse arquivo de: Resultado_Enquete.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Cs/Resultado_Enquete.cs" Inherits="ResultEnquete" %> <html> <head> <title> Resultado Parcial </title> </head> <body> <form runat="server"> <table border="0"> <tr> <td><b>C#:</b></td> <td><img src="Img/Led.gif" height="13" width="<%=Session["Resultado1"]%>"></td> <td><asp:label ID="LbResult1" runat="server" />%</td> </tr> <tr> <td><b>JAVA:</b></td> <td><img src="Img/Led.gif" height="13" width="<%=Session["Resultado2"]%>"></td> <td><asp:label ID="LbResult2" runat="server" />%</td> </tr> <tr> <td><b>PHP:</b></td> <td><img src="Img/Led.gif" height="13" width="<%=Session["Resultado3"]%>"></td> <td><asp:label ID="LbResult3" runat="server" />%</td> </tr> <tr> <td colspan="3">votos computados: <asp:label ID="LbTotal" runat="server" Font-Bold="true" /></td> </tr> <tr> <td><asp:HyperLink NavigateUrl="Home_Enquete.aspx" Text="<< Voltar" runat="server" /></td> </tr> </table> </form> </body> </html>
e por fim... criar a parte mecânica do nosso resultado da enquete!!
e daremos o nome a ela de: Resultado_Enquete.cs
using System;
using System.Data;
using System.Data.Odbc;
public partial class ResultEnquete : System.Web.UI.Page{
public void Page_Load(object Sender, EventArgs e){
OdbcConnection Conexao = new OdbcConnection("Driver=MySQL ODBC 3.51 Driver; DATABASE=CaBo_GeL; Server=LocalHost; uid=; pwd=;");
OdbcCommand Comando=new OdbcCommand("Select * From Enquete",Conexao);
Conexao.Open();
OdbcDataReader Objloc=Comando.ExecuteReader();
Objloc.Read();
double vOpcao1=Convert.ToInt32(Objloc["Opcao1"]);
double vOpcao2=Convert.ToInt32(Objloc["Opcao2"]);
double vOpcao3=Convert.ToInt32(Objloc["Opcao3"]);
double Total = vOpcao1 + vOpcao2 + vOpcao3;
if(vOpcao1 == 0){
LbResult1.Text = "0";
}else{
double Resp1 = (vOpcao1 / Total * 100.0);
LbResult1.Text = String.Format("{0:00.0}", Resp1);
Session["Resultado1"] = String.Format("{0:00.0}", Resp1);
}
if(vOpcao2 == 0){
LbResult2.Text ="0";
}else{
double Resp2 = (vOpcao2 / Total * 100.0);
LbResult2.Text = String.Format("{0:00.0}", Resp2);
Session["Resultado2"] = String.Format("{0:00.0}", Resp2);
}
if(vOpcao3 == 0){
LbResult3.Text ="0";
}else{
double Resp3 = (vOpcao3 / Total * 100.0);
LbResult3.Text = String.Format("{0:00.0}", Resp3);
Session["Resultado3"] = String.Format("{0:00.0}", Resp3);
}
LbTotal.Text = ""+Total;
}
}
num foi simples????
obs.: nessa enquete o usuário so poderá votar 1 so vez !!!!
espero ajudar vcs!!
at+


