Salve!
Sto cercando di creare un programma con C# che ho iniziato ad utilizzare da poco tempo e di cui sono abbastanza ignorante!!!
Il mio problema è questo: ho un db Oracle con una tabella. Ho già creato una maschera con un datagridview che legge tutti i record della mia tabella. Tramite un pulsante i dati vengono passati ad una seconda form che carica in Textbox tutti i campi della tabella (che nel datagrid non potevo visualizzare perchè troppi).
Ora, questi dati, nelle textbox possono essere modificati e quindi salvati. Il salvataggio lo eseguo tramite una query di update. La connessione e la lettura dei dati sono corretti, ma è come se la query non venisse eseguita perchè non mi vengono salvati i dati. Non mi da errori quindi non so nemmeno da cosa partire.
I campi della query sono TUTTI i campi visualizzati come textbox sulla maschera.
Il codice è questo.
-----------------------------------------------------------------------------------
string source = "Data Source=ORA;User ID=PROVA;Password=prova";
OracleConnection conn = new OracleConnection(source);
conn.Open();
try
{
//CLIENTE è il nome della mia tabella e i suoi campi sono quelli scritti in MAIUSCOLO
string sqlinsert = "UPDATE CLIENTE SET DSRAGI1=:dsragi1,CDATTI1=:cdatti1,DSINDIR=:dsindir ,DSCAP=:dscap,DSLOCAL=:dslocal,DSPROVI=:dsprovi,
CDNAZIO=:cdnazio,CDSTATO=:cdstato,NRTELE1=:nrtele1 ,NRTELE2=:nrtele2,NRFAX01=:nrfax01,NRFAX02=:nrfax0 2,
DTANZIA=:dtanzia,DSEMAIL=:dsemail,DSSITOI=:dssitoi ,DSCOFIS=:dscofis,DSPAIVA=:dspaiva,DSAMMI1=:dsammi 1
WHERE CDCLIFO=:cdclifo";
OracleCommand command = new OracleCommand(sqlinsert, conn);
command.Parameters.Add(new OracleParameter(":cdclifo", OracleDbType.Varchar2));
command.Parameters[":cdclifo"].Value = CDCLIFO.Text;
command.Parameters.Add(new OracleParameter(":dsragi1", OracleDbType.Varchar2));
command.Parameters[":dsragi1"].Value = DSRAGI1.Text;
command.Parameters.Add(new OracleParameter(":cdatti1", OracleDbType.Varchar2));
command.Parameters[":cdatti1"].Value = CDATTI1.Text;
command.Parameters.Add(new OracleParameter(":dsammi1", OracleDbType.Varchar2));
command.Parameters[":dsammi1"].Value = DSAMMI1.Text;
command.Parameters.Add(new OracleParameter(":dsindir", OracleDbType.Varchar2));
command.Parameters[":dsindir"].Value = DSINDIR.Text;
command.Parameters.Add(new OracleParameter(":dscap", OracleDbType.Varchar2));
command.Parameters[":dscap"].Value = DSCAP.Text;
command.Parameters.Add(new OracleParameter(":dslocal", OracleDbType.Varchar2));
command.Parameters[":dslocal"].Value = DSLOCAL.Text;
command.Parameters.Add(new OracleParameter(":dsprovi", OracleDbType.Varchar2));
command.Parameters[":dsprovi"].Value = DSPROVI.Text;
command.Parameters.Add(new OracleParameter(":cdnazio", OracleDbType.Varchar2));
command.Parameters[":cdnazio"].Value = CDNAZIO.Text;
command.Parameters.Add(new OracleParameter(":cdstato", OracleDbType.Varchar2));
command.Parameters[":cdstato"].Value = CDSTATO.Text;
command.Parameters.Add(new OracleParameter(":nrtele1", OracleDbType.Varchar2));
command.Parameters[":nrtele1"].Value = NRTELE1.Text;
command.Parameters.Add(new OracleParameter(":nrtele2", OracleDbType.Varchar2));
command.Parameters[":nrtele2"].Value = NRTELE2.Text;
command.Parameters.Add(new OracleParameter(":nrfax01", OracleDbType.Varchar2));
command.Parameters[":nrfax01"].Value = NRFAX01.Text;
command.Parameters.Add(new OracleParameter(":nrfax02", OracleDbType.Varchar2));
command.Parameters[":nrfax02"].Value = NRFAX02.Text;
command.Parameters.Add(new OracleParameter(":dtanzia", OracleDbType.Date));
command.Parameters[":dtanzia"].Value = DateTime.Now.Date;
command.Parameters.Add(new OracleParameter(":dsemail", OracleDbType.Varchar2));
command.Parameters[":dsemail"].Value = DSEMAIL.Text;
command.Parameters.Add(new OracleParameter(":dssitoi", OracleDbType.Varchar2));
command.Parameters[":dssitoi"].Value = DSSITOI.Text;
command.Parameters.Add(new OracleParameter(":dscofis", OracleDbType.Varchar2));
command.Parameters[":dscofis"].Value = DSCOFIS.Text;
command.Parameters.Add(new OracleParameter(":dspaiva", OracleDbType.Varchar2));
command.Parameters[":dspaiva"].Value = DSPAIVA.Text;
command.ExecuteNonQuery();
command.Dispose();
conn.Close();
Close();
}
catch (OracleException err)
{
MessageBox.Show(err.Message);
}
----------------------------------------------------------------------------
Se però sostituisco a
command.ExecuteNonQuery();
command.Dispose();
conn.Close();
Close();
il codice
OracleTransaction transa = conn.BeginTransaction();
OracleCommand comando = conn.CreateCommand();
comando.CommandText = sqlinsert;
comando.ExecuteScalar();
transa.Commit();
conn.Close();
mi presenta un errore ORA-01008.... suggerimenti???
Mi scuso in anticipo se non mi sono spiegata bene!!!