Problema con Update

giovedì 28 luglio 2005 - 11.37

pirand Profilo | Newbie

Ciao a tutti,
durante la fase di update mi restituisce il seguente errore:
"System.Data.OleDb.OleDbException: Sintassi non corretta in prossimità della parola chiave 'DEFAULT'."

Qualcuno di voi si è mai imbattuto in questo errore, sicuramente sarà una cosa banalissima ma ho controllato tutto il codice e sembra essere corretto.

Grazie mille

Brainkiller Profilo | Guru

Manca la Query però che stai eseguendo. Se non la posti è difficile capire dove sta l'errore. Se è più di una query posta il blocco di codice.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

pirand Profilo | Newbie

scusatemi non ci avevo pensato:

private void tblCSM_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int RigaModifica = tblCSM.EditItemIndex;
//Chiave Primaria
fciSqlUpdate.Parameters["Original_AM_DATAI"].Value = e.Item.Cells[1].Text;
fciSqlUpdate.Parameters["Original_AM_TIME"].Value = e.Item.Cells[2].Text;
fciSqlUpdate.Parameters["Original_AM_TASK"].Value = e.Item.Cells[3].Text;
//dati
TextBox tbxCODOPE = (TextBox) e.Item.FindControl("dfxCODOPE");
TextBox tbxCAUSALE = (TextBox) e.Item.FindControl("dfxCAUSALE");
TextBox tbxCONTODARE = (TextBox) e.Item.FindControl("dfxCONTOD");
TextBox tbxCONTOAVERE = (TextBox) e.Item.FindControl("dfxCONTOA");
fciSqlUpdate.Parameters["AM_CODOPE"].Value = tbxCODOPE.Text;
fciSqlUpdate.Parameters["AM_CAUSALE"].Value = tbxCAUSALE.Text;
fciSqlUpdate.Parameters["AM_CONTO"].Value = tbxCONTODARE.Text;
fciSqlUpdate.Parameters["AM_CODCONT"].Value = tbxCONTOAVERE.Text;

DaCsmRiapConti.Fill(dsCSM1, "PNRIAPE");
dsCSM1.PNRIAPE[tblCSM.EditItemIndex].CODOPE = tbxCODOPE.Text;
dsCSM1.PNRIAPE[tblCSM.EditItemIndex].CAUSALE = tbxCAUSALE.Text;
dsCSM1.PNRIAPE[tblCSM.EditItemIndex].CONTOD = tbxCONTODARE.Text;
dsCSM1.PNRIAPE[tblCSM.EditItemIndex].CONTOA = tbxCONTOAVERE.Text;

DaCsmRiapConti.Update(dsCSM1, "PNRIAPE");
dsCSM1.PNRIAPE.AcceptChanges();
tblCSM.EditItemIndex = -1;
tblCSM.DataBind();
}

la query di update risiede nel dataadapter ed è la seguente:
fciSqlUpdate
"
UPDATE PNRIAPE SET AM_CODOPE = ?, AM_CAUSALE = ?, AM_CONTO = ?, AM_CODCONT = ? WHERE (AM_DATAI = ?) AND (AM_TIME = ?) AND (AM_TASK = ?)
"
Grazie mille


Pirand

Brainkiller Profilo | Guru

Stai utilizzando Access ?

I valori presenti nelle Textbox che tipo di valori sono. Hai provato a cambiare valori ? per capire se è un problema di dati o di procedura.

ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

pirand Profilo | Newbie

Utilizzo Sql server.
Se faccio l'analisi dell'istruzione "DaCsmRiapConti.Update(dsCSM1, "PNRIAPE")" mi dice:"errore: argomenti non corrispondenti ai parametri accettati dalla funzione "DaCsmRiapConti.Update""
i parametri però sono corretti, l'unica cosa è che i primi due sono in formato data.
devo convertirli o ci pensa lui?

Grazie

Pirand

Brainkiller Profilo | Guru

Perchè stai utilizzando OleDbConnection allora invece del SqlConnection che è ottimizzato per SQL Server ?

ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

pirand Profilo | Newbie

Sto implementando un programma già fatto, potrebbe essere quello il problema??
Ora provo a cambiare la connessione

Pirand

Brainkiller Profilo | Guru

No, ma è strano che utilizzi quegli oggetti generici nel programma o cmq. chi l'ha scritto prima di te. Se si usa SQL di solito si usa la SqlConnection.

ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

pirand Profilo | Newbie

Grazie mille, ho risolto il tutto ed è diventato anche più veloce nell'estrazione.
Ho riscritto il codice e ricreato le connessioni ora funziona:
"
private void tblCSM_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int RigaModifica = tblCSM.EditItemIndex;
//Leggo i vaolori modificati
TextBox tbxCODOPE = (TextBox) e.Item.Cells[4].Controls[0];
TextBox tbxCAUSALE = (TextBox) e.Item.Cells[5].Controls[0];
TextBox tbxCONTODARE = (TextBox) e.Item.Cells[6].Controls[0];
TextBox tbxCONTOAVERE = (TextBox) e.Item.Cells[7].Controls[0];
//Preparo il dataset con i dati
DaCsmRiapConti.Fill(dsCSM1, "PNRIAPE");
dsCSM.PNRIAPERow Riga;
string key = tblCSM.DataKeys[RigaModifica].ToString();
//Istanzio la riga sulla quale apportare le modifiche
Riga = dsCSM1.PNRIAPE.FindBynum_id(int.Parse(key));
string Codope = tbxCODOPE.Text;
string Causale = tbxCAUSALE.Text;
string ContoDare = tbxCONTODARE.Text;
string ContoAvere = tbxCONTOAVERE.Text;
//Imposto i nuovi valori
Riga.CODOPE = Codope;
Riga.CAUSALE = Causale;
Riga.CONTOD = ContoDare;
Riga.CONTOA = ContoAvere;
//Aggiorno il database
DaCsmRiapConti.Update(dsCSM1, "PNRIAPE");
dsCSM1.PNRIAPE.AcceptChanges();
tblCSM.EditItemIndex = -1;
tblCSM.DataBind();
}
"
grazie ancora

Pirand
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5