Controllo esistenza dati e inserimento in db

Discussione in 'ASP.NET' iniziata da klomax, 7 Giugno 2014.

  1. klomax

    klomax Nuovo Utente

    Registrato:
    16 Febbraio 2009
    Messaggi:
    22
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Home Page:
    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();
        }
    
    
     
  2. Vins

    Vins Moderatore Membro dello Staff MOD

    Registrato:
    28 Luglio 2009
    Messaggi:
    238
    Mi Piace Ricevuti:
    19
    Punteggio:
    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 + "'";
     
  3. klomax

    klomax Nuovo Utente

    Registrato:
    16 Febbraio 2009
    Messaggi:
    22
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Home Page:
    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();
    






     
Sto caricando...

Condividi questa Pagina