Eccezione che non riesco a spiegarmi

martedì 15 marzo 2005 - 10.26

giorgiodipietro Profilo | Junior Member

Un saluto a tutto il forum...ho un piccolo problema che non riesco a risolvere...
quando aggiungo una riga, completa e correttta in ogni suo campo, con il metodo Rows.add(riga) mi da questa eccezione:

System.Data.EvaluateException: Impossibile eseguire l'operazione '=' su System.DateTime e System.Double.
at System.Data.DataTable.InsertRow(DataRow row, Int32 proposedID, Int32 pos)
at System.Data.DataTable.AddRow(DataRow row, Int32 proposedID)
at System.Data.DataRowCollection.Add(DataRow row)

...dalla guida mi dice che riguarda la proprietà Expression di una colonna, ma questa proprietà è impostata a ""...

Chi mi sa dare una mano...

Grazie

Cteniza Profilo | Guru

Se aggiungi un evento:
OnRowUpdating e vai con il debugger a verificare la stringa (commandtext) che ha preparato vedrai che alcuni valori sono sbagliati.
Infatti le condizioni where per l'update sono fatte nel seguente modo:
and (campo = @campo or @campo = null) oppure, nel caso di access (campo = ? or ? = null)
Se hai sql usa il profiler e vedrai subito l'errore

antoleo Profilo | Newbie

Sto cercando di fare l'update di una riga del datatable dove praticamente (per esercizio) sto reinserendo gli stessi dati già contenuti.
quando eseguo l'update mi dice che c'è un problema di concorrenza (sto lavorando solo io in locale) e analizzando la proprietà cmdtext mi trovo

UPDATE `tblAziende` SET `cDescrizione`=?cDescrizione, `cPartitaIva`=?cPartitaIva, `cUserID`=?cUserID, `lDataModifica`=?lDataModifica, `fEsiste`=?fEsiste WHERE `IDAzienda` <=> ?Original_IDAzienda AND `cDescrizione` <=> ?Original_cDescrizione AND `cPartitaIva` <=> ?Original_cPartitaIva AND `cUserID` <=> ?Original_cUserID AND `lDataModifica` <=> ?Original_lDataModifica AND `fEsiste` <=> ?Original_fEsiste; SELECT `IDAzienda`, `cDescrizione`, `cPartitaIva`, `cUserID`, `lDataModifica`, `fEsiste` FROM `tblAziende` WHERE (`IDAzienda`=?Original_IDAzienda)


cosa significa?

Praticamente

Cteniza Profilo | Guru

Praticamente quello è il comando che l'update del dataset popola ad ogni giro sostituendo i ? con i parametri che ha creato nel command

antoleo Profilo | Newbie

ok questo l'avevo intuito, ma non ha senso quello che crea nella sezione where della query. Ripeto: io sto lavorando su un DB in locale in monoutenza e sto cercando di updatare la datarow del datatable con le stesse informazioni. Sono due giorni che cerco di capirci qualcosa

Cteniza Profilo | Guru

I parametri presenti nella query riguardano il dataadapter e gli dicono di andare a prendere il valore precedente la modifica, perchè lui li cerca sempre con il valore precedente la modifica e quindi genera dei parametri diversi
Se non ti piace questa cosa devi fare come me che sono intervenuto su tutte le query togliendo/aggiungendo valori ai parametri
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5