Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [C#] inserimento di un record in db mysql

    Ciao a tutti, premetto che sono un principiante dello c#, quindi perdonate se ho scritto qualche baggianata, ho un problema relativo alla all' aggiornamento di un record in mysql, tramite c#.

    Riesco ad effettuare la connessione al server mysql remoto,

    string connString = "SERVER=ipaddress;DATABASE=db;UID=root;PASSWORD=pa ssword;";
    MySqlConnection conn = new MySqlConnection(connString);

    riesco a leggere i record dalla table files

    MySqlCommand cmd = conn.CreateCommand();
    MySqlDataReader reader;
    cmd.CommandText = "SELECT * FROM files";
    conn.Open();


    ma non riesco man mano che vengono letti i record ad effettuare l'update del record,

    reader = cmd.ExecuteReader();
    if (reader.HasRows)
    {
    while (reader.Read())
    {

    MySqlCommand command = conn.CreateCommand();
    MySqlDataReader writer;
    command.CommandText = "UPDATE files SET scaricato = 1 WHERE id ='" + idrecord + "'";
    writer = command.ExecuteReader();

    }
    } conn.Close();
    }


    Credo che il problema sia nel gruppo di istruzioni relativo all'update. QUalcuno riesce a darmi qualche dritta? Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    idrecord è un numero?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ciao, con mysql non ho mai provato, ma di solito per eseguire query di insert update o delete piuttosto di usare ExecuteReader() io utilizzo il metodo ExecuteNonQuery()...da quello che ho letto in giro anche per mysql c sharp dovrebbe avere questo metodo...

  4. #4
    grazie ragazzi, si id record è un numero.

    Adesso provo con ExecuteNonQuery().

  5. #5
    Se provo con execuytenonquery mi restiruisce il messaggio:


    Errore Impossibile convertire implicitamente il tipo 'int' in 'MySql.Data.MySqlClient.MySqlDataReader'

  6. #6
    Ok...perchè writer è un oggetto di tipo MysqlDataReader mentre ExecuteNonQuery ritorna un oggetto int (0 se la query non va a buon fine) scusa ho dimenticato di specificarlo...prova a dichiarare
    codice:
    int writer = 0;
    
    writer = command.ExecuteNonQuery();
    
    if(writer > 0){ 
          // la query è andata a buon fine! 
    }
    else{
         // la query non ha funzionanto....
    }

  7. #7
    grazie mille ci provo subito.

  8. #8
    E' corretta questa sintassi secondo te?

    int writer = 0;
    writer = command.ExecuteNonQuery();

    command.CommandText = "UPDATE files SET scaricato = 1 WHERE id ='" + idrecord + "'";
    command.ExecuteNonQuery();

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Hai provato?

    P.S. Se quel campo è numerico, da

    command.CommandText = "UPDATE files SET scaricato = 1 WHERE id ='" + idrecord + "'";

    devi togliere gli apici singoli e scrivere


    command.CommandText = "UPDATE files SET scaricato = 1 WHERE id =" + idrecord.ToString();
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    quoto oregon...se idRecord è numerico gli apici non servono.

    comunque no...prima definisci la query poi la esegui...cioè:
    codice:
    MySqlCommand command = conn.CreateCommand();
    
    // Definisco la query
    command.CommandText = "UPDATE files SET scaricato = 1 WHERE id =" + idrecord.ToString();
    
    // secondo me non serve nemmeno inizializzare writer a 0 visto che memorizzi solo il risultato della query...però cambia poco
    int writer = command.ExecuteNonQuery();    // così esegui la query
    
    // fai i dovuti controlli se la query è andata a buon fine
    if(writer > 0)
          // Query ok....
    else
          // Errore nella query....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.