Reflection

giovedì 20 marzo 2008 - 17.07

kidrock Profilo | Junior Member

Ho creato un metodo che in reflection mi va a riempire i parametri del mio DataAdapter ma quando cerco di lanciare l'update mi dice che cerca di convertire un string in un int32 come mai?

Qui sotto ho postato il codece che mi riempe i parametri con i valori delle classe:

foreach (OleDbParameter param in this.cmdBuilder.DataAdapter.UpdateCommand.Parameters)
{
PropertyInfo pubblicProp=pEntity.GetType().GetProperty(param.SourceColumn);
if (pubblicProp != null)
{
param.Value = pubblicProp.GetValue(pEntity, null);
}
}

grazie

Ciao
Michele

"La sconfitta è un' eleganza.Per l'ipocrisia di chi si arrende in partenza."

freeteo Profilo | Guru

ciao,
bisognerebbe debuggare per andare bene, perche' dovresti capire parametro per parametro qual'e' il valore che gli da fastidio.
A occhio cmq, il fatto è che quando setti solo il valore del parametro lui cerca di "dedurre" il tipo dal valore e probabilmente sbaglia...

Intendo prima di questa funzione, quando li aggiungi, perche' qui stai girando su un insieme di parametri che hanno gia' ognuno il proprio tipo corrispondente...pero' rimane il fatto di andare via debug per capire qual'e' il parametro.

Oppure potresti settare il tipo giusto al parametro (param.DbType=..) , ma qui dentro stai girando "generico", percui dovresti pensare ad uno switch-case...


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

kidrock Profilo | Junior Member

In previsione mi ero fatto un metodo che mi restituisce il tipo dalla tabella
Grazie

Ciao
Michele

"La sconfitta è un' eleganza.Per l'ipocrisia di chi si arrende in partenza."
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