Controllo esistenza dati e inserimento in db

klomax

Nuovo Utente
16 Feb 2009
22
0
1
www.cyberkings.it
Ciao a tutti
sto provando a realizzare una pagina asp.net per caricare un immagine sul server e poi inserire i dati nel db.
lo script per il ridimensionamento della foto funziona senza problemi
ma sull'inserimento nel db ho qualche problema
il tutto funziona su l'invio dei dati tramite un tasto che richiama la funzione nella quale vorrei fare questa operazione
oltre a prendere i dati dell'immagine prendo altri valori tra cui il campo email

io vorrei verificare prima se in unta bella utenti ho questo indirizzo email
dopo di che se non c'è lo inserisco e mi estraggo l'id
altrimenti se c'è mi tiro fuori l'id e proseguo andando ad inserire i dati della foto in un'altra tabella dove inserisco anche l'id dell'utente

il primo problema ce l'ho quando inserisco un indirizzo che non c'è nel db e mi da eccezione
vorrei mettere un if .eof o qualcosa del genere
ho provato a modificare il codice che vedete ancora + sotto con questo primo blocco di if ma nulla

HTML:
object RsCom = cmd.ExecuteScalar();
     int idUtente=0;
     if (RsCom != null )
     {
      
      idUtente= (Int32)RsCom;
       MyContentType.InnerHtml=idUtente.ToString();
     }
non mi da errore ma nemmeno mi entra nell'if
quindi non riesco ad accedere all'if che ti ho incollato su
per scrivere nel db
cosa sto sbagliando?


non avendo ben capito ancora tante cose di c#
vi chiedo ma sto usando troppi command o va bene così?

grazie

HTML:
string sql = "select idUtente  from utenti where mail='"+ Email +'";




       cmd = new OleDbCommand(sql, conn);
     
      conn.Open();
    


     int idUtente=0;
     idUtente = (Int32)cmd.ExecuteScalar();
     MyContentType.InnerHtml=idUtente.ToString();
    
    
    if ( idUtente==0)
    {
       OleDbCommand cmd2 = null;
      sql="insert into utenti mail values '" + Email + "'";
      cmd2 = new OleDbCommand(sql, conn);
          cmd2.ExecuteNonQuery();
      
       OleDbCommand cmd3 = null;
      sql = "select idUtente  from utenti where mail='" + Email + "'";
            cmd3 = new OleDbCommand(sql, conn);
         idUtente = (Int32)cmd3.ExecuteScalar();
          MyContentType.InnerHtml=idUtente.ToString();
      
       OleDbCommand cmd4 = null;
      sql="insert into foto (coordinate,IdUtente,foto) values ('" + coordinate + "','" + idUtente + "','"+ UploadedFileName +"')";
      cmd4 = new OleDbCommand(sql, conn);
          cmd4.ExecuteNonQuery();
      
    }
    else

    {
      
        OleDbCommand cmd4 = null;
        sql="insert into foto (coordinate,IdUtente,foto) values ('" + coordinate + "','" + idUtente + "','"+ UploadedFileName +"')";
        cmd4 = new OleDbCommand(sql, conn);
        cmd4.ExecuteNonQuery();
    }
 

Vins

Moderatore
Membro dello Staff
MOD
28 Lug 2009
238
19
0
Ciao, che database stai utilizzando?

Comunque penso che il problema sia la query

Codice:
string sql = "select idUtente  from utenti where mail='"+ Email +'";
Dovresti provare a scrivere

Codice:
string sql = "select idUtente  from utenti where mail='" + Email + "'";
 

klomax

Nuovo Utente
16 Feb 2009
22
0
1
www.cyberkings.it
Intanto grazie per avermi risposto,
quello che vedi è solo un errore nel digitare e ricopiare, ma nel codice che provavo ho scritto bene
lo sto eseguendo con il debug e l'errore me lo da sulla riga cheti ho evedenziato sotto
forse sto sbagliando, ma ti faccio un altra domanda
ma per fare un semplice controllo se ci sono dei dati nel db e tirare fuori l'id come si fà
mi sebra una cosa così semplice e invece non ci riesco
in asp classico, avrei fatto la query e poi mi bastava un if recordset.eof
e avevo risolto il problema



Codice:
string sql = "select idUtente  from utenti where mail='"+ Email +"'";


       cmd = new OleDbCommand(sql, conn);
	   
	    conn.Open();

        try
        {

		 int idUtente=0;
		[B][COLOR="#B22222"] idUtente = (Int32)cmd.ExecuteScalar();[/COLOR][/B]
		 MyContentType.InnerHtml=idUtente.ToString();






Ciao, che database stai utilizzando?

Comunque penso che il problema sia la query

Codice:
string sql = "select idUtente  from utenti where mail='"+ Email +'";
Dovresti provare a scrivere

Codice:
string sql = "select idUtente  from utenti where mail='" + Email + "'";