codice:
// Creo l'oggetto Command a cui passo la stringa Sql per eseguire la INSERT
        String sql = "INSERT INTO messaggiModulo (nomeCognome, societa, email, messaggio) VALUES (@nomeCognome, @societa, @email, @messaggio)";

        OleDbCommand cmd = new OleDbCommand(sql, cn);

// Eseguo la INSERT
        cmd.ExecuteReader();
Scusa ma la prte che ti riporto di sopra non dovrebbe effettuare l'inserimento?
Io se al posto dei parametri presi dalle variabili metto dei valori a caso tipo
'Pippo', 'nome società', 'pippo@tin.it', 'messaggio di prova'

I dati vengono regolarmente inseriti.

I dai delle variabili li ricavo in questo modo e provengono da unform con metodo "post"

codice:
string nomeCognome = Request.Form ["nomeCognome"];
        string societa = Request.Form ["societa"];
        string email = Request.Form ["email"];
        string messaggio = Request.Form ["messaggio"];