guarda se così funziona

codice:
        private void button1_Click(object sender, EventArgs e)
        {
            string StringaConnessione = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb";

            OleDbConnection connessione = null;
            OleDbCommand comando = null;
            OleDbTransaction transazione = null;
            string sql = "";

            try
            {
                connessione = new OleDbConnection(StringaConnessione);
                connessione.Open();

                transazione = connessione.BeginTransaction();
                comando = connessione.CreateCommand();
                comando.Transaction = transazione;


                sql = "insert into clienti (nome, cognome, anni) values (?, ?, ?)";
                comando.CommandText = sql;

                comando.Parameters.Clear();

                comando.Parameters.Add("nome", OleDbType.VarChar, 50).Value = StringNullToDBNull(this.Nome.Text);
                comando.Parameters.Add("cognome", OleDbType.VarChar, 50).Value = StringNullToDBNull(this.Cognome.Text);
                comando.Parameters.Add("anni", OleDbType.Integer).Value = StringNullToDBNull(this.Anni.Text);

                comando.ExecuteNonQuery();



                transazione.Commit();
                MessageBox.Show("Dati inseriti correttamente");

            }
            catch (Exception ex)
            {
                if (((transazione != null) && (transazione.Connection != null))) transazione.Rollback();

                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (connessione != null) connessione.Close();
            }



        }


        private object StringNullToDBNull(string s)
        {
            if (string.IsNullOrEmpty(s)) return DBNull.Value; else return s.Trim();
        }