Asp net contatori accessi

giovedì 28 gennaio 2010 - 18.36

Anonimo Profilo | Senior Member

Salve, ho questo codice in un controllo resource web,
che non mi riesce ad farlo funzionare... mi dite come fare ?
<%@ Control Language="C#" ClassName="counter" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.Odbc" %> <script runat="server"> String connectionString = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; protected void Page_Load(object sender, EventArgs e) { using (OdbcConnection conn = new OdbcConnection(connectionString)) { string SQL = ""; SQL = SQL + "SELECT * FROM tbl_accessi"; conn.Open(); OdbcCommand cmd = new OdbcCommand(SQL, conn); OdbcDataReader rdr = cmd.ExecuteReader(); if (Session["contatore"] == null) { string contatore = Session["contatore"].ToString(); if (contatore != "") { string SQL2 = "UPDATE tbl_accessi SET counter = counter + 1"; OdbcCommand cmd2 = new OdbcCommand(SQL2, conn); cmd2.ExecuteNonQuery(); Session["contatore"] = "OK"; } Contatore.Text = "" + rdr["counter"].ToString() + ""; } } } </script> <asp:Label id="Contatore" runat="server" /> accessi

Non da nessun errore, ma non mi autoincremente la label.
Uso odbc perchè mysql connector non mello fanno usare e mi dicono di usare come si facceva in odbc con asp 3.0.

Mi potete dire come mai non fà ?
grazie.

Jeremy Profilo | Guru

Ciao.
Perchè per come hai scritto il codice, scriverebbe nella label solo se vera la condizione
Session["contatore"] == null

Facci sapere...
Ciao

Anonimo Profilo | Senior Member

perchè se scrivo cosi come mi hai detto te... mi da questo messaggio di errore:
...
Riferimento a un oggetto non impostato su un'istanza di oggetto.
....

Mi dici come fare?.

grazie.

Jeremy Profilo | Guru

Io non ti ho detto di scrivere nulla ... ti ho semplicemente indicato dove potrebbe essere il problema ....
Devi tirar fuori questa riga di codice:
Contatore.Text = "" + rdr["counter"].ToString() + "";

da questa condizione:
if (Session["contatore"] == null)

Visto che Session["contatore"] non è null(perchè lo hai valorizzato con Session["contatore"] = "OK") ..... non esegue questa riga di codice
Contatore.Text = "" + rdr["counter"].ToString() + "";

facci sapere...
Ciao

Anonimo Profilo | Senior Member

ho scoperto che è la query che non fa update.

perchè ho inserito a mano un numero e lo visulizza nella label.

Però no so come fare ad scrivere l'update con un campo solo senza l'autoincremento,
la tabella e questa:

CREATE TABLE `tbl_accessi` (
`counter` INT(10) NULL DEFAULT NULL
)

lo generata con heidesql

Anonimo Profilo | Senior Member

c'è lo fatta:

<%@ Control Language="C#" ClassName="counter" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.Odbc" %> <script runat="server"> String connectionString = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; protected void Page_Load(object sender, EventArgs e) { using (OdbcConnection conn = new OdbcConnection(connectionString)) { string SQL = ""; SQL = SQL + "SELECT * FROM tbl_accessi"; conn.Open(); OdbcCommand cmd = new OdbcCommand(SQL, conn); OdbcDataReader rdr = cmd.ExecuteReader(); if (rdr.Read()) { if (Session["nocontatore"] == null) { string SQL_ = ""; SQL_ = SQL_ + "UPDATE tbl_accessi SET tbl_accessi.counter = counter+1;"; OdbcCommand cmd2 = new OdbcCommand(SQL_, conn); cmd2.ExecuteNonQuery(); } Contatore.Text = "" + rdr["counter"].ToString() + ""; } else { Contatore.Text = "Errore"; } } } </script> <asp:Label id="Contatore" runat="server"></asp:Label>

tonyexpo Profilo | Senior Member

ciao

perchè DEVI usare odbc????
Antonio Esposito
MCTS, MCP

http://blogs.dotnethell.it/espositos

Anonimo Profilo | Senior Member

te sei scemo: tonyexpo

L'ho già detto prima...

IO mi sono rotto i coglioni che tutte le volte state ad dire lì di usare mysql connector e che l'hoster non vuole per motivi di sicurezza..per gli hosting condivisi...

Perchè non fatte le lettere voi ad dire come " aruba.it " e "register.it" di farci usare mysql connector .... cazzo! e non dire sempre perchè non usi mysql connector che ora mi sono rotto le palle, allora come si facceva con asp 3.0 usare mysql conector che non esisteva per asp 3.0, quindi ci faceva usare odbc .



Ciao, io chiduo.

tonyexpo Profilo | Senior Member

1) la mia era curiosità
2) siamo in un forum è normale scambiarci opinioni ed è comune dire che odbc è obsoleto
3) sei impazzito?!?!?!?



Antonio Esposito
MCTS, MCP

http://blogs.dotnethell.it/espositos

Anonimo Profilo | Senior Member

non sono impazzito sono gli hoster che limitano tutto.

Perchè signor non scriva una bella letterina per dire ad aruba e register che è odbc e obsoleto e non dirmelo a me.

Se non erano per gli hoster avevo già usato mysql connector.

Ma vàcag..
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5