33 messaggi dal 06 settembre 2002
Ho il seguente codice, con cui devo verificare l'esistenza dei dati nel db per permettere o meno di accedere a un'area riservata:
<script language="C#" runat="server">
public void LoginCheck (Object Obj, EventArgs E) 
{
string Username = txtUsername.Text;
string Password = txtPassword.Text;
string Scn = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("/mdb-database/dbEu2000.mdb");
OleDbConnection cnn = new OleDbConnection(Scn);
cnn.Open();
OleDbCommand cmd = new OleDbCommand("SELECT Username, Password FROM Eu2000Users  WHERE Username=" + Username " AND Password=" + Password , cnn);
int Risultato = cmd.ExecuteNonQuery();
if (Risultato !=0)
{
Response.Redirect("errore.aspx");
}
else
{
Response.Redirect("corretto.aspx");
}
}

</script>


Quando eseguo, mi viene fuori l'errore di compilazione:

CS1026: ) expected

La riga incriminata è questa:

Line 16: OleDbCommand cmd = new OleDbCommand("SELECT Username, Password FROM Eu2000Users WHERE Username=" + Username " AND Password=" + Password , cnn);


Dove sbaglio?
Hai dimenticato un "+", dopo "Username".

OleDbCommand cmd = new OleDbCommand("SELECT Username, Password FROM Eu2000Users WHERE Username = '" + Username + "' AND Password = '" + Password + "'" , cnn);


Ti consiglio di fare uso di query parametriche al fine di evitare attacchi di sql injection.

Nicola Baldi
"Make things as simple as possible, but not simpler."
>>> My blog <<<
33 messaggi dal 06 settembre 2002
Grazie!Una cosa, come faccio a vedere se sono stati trovati record corrispondenti alla condizione della mia query?
DanyWeb ha scritto:
come faccio a vedere se sono stati trovati record corrispondenti alla condizione della mia query?


Una soluzione potrebbe essere la seguente:
OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (dr.HasRows)
   Response.Write("Records found");
dr.Close();

Nicola Baldi
"Make things as simple as possible, but not simpler."
>>> My blog <<<

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.