Passare un parametro di tipo Object ad un ObjectDataSource
Miko_d non è online. Ultima attività: 20/05/2008 10.53.44Miko_d
Inserito il: 07 maggio 2008 11.15
116 messaggi dal 21 lug 2002
Ciao a tutti,

il problema è questo, ho creato una classe Person con le solite proprietà: Nome, Cognome, indirizzo ecc.. Poi ho creato un altra classe PersonADO con tutta la logica di accesso, modifica, inserimento ed eliminazione degli oggetti Person dal DB, che per quanto riguarda il metodo di selezione, restituisce delle PersonCollection.
Adesso vorrei collegare tramite un ObjectDataSource il metodo di selezione GetPersonCollection ad una GriView, pero passando a tale metodo un oggetto di tipo Person.
Allego un po' di codice esplicativo:

Questa è la dichiarazione dell'objectdatasource

<asp:ObjectDataSource ID="ObjectDataSource1"
runat="server"
OnSelecting="ObjectDataSource1_Selecting"
SelectMethod="GetPersonCollection"
TypeName="MyProject.PersonADO"
DataObjectTypeName="MyProject.Person">
<SelectParameters>
<asp:Parameter Name="p" Type="Object" />
</SelectParameters>

p si riferisce ad un oggetto Person

Questo invece è il codice con cui istanzio e valorizzo il mio parametro p di tipo Person

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
Person p = new Person();
p.Id = 1;
e.InputParameters["p"] = p;
}


Questa è una parte del metodo GetPersonCollection:

public static PersonCollection GetPersonCollection(Person p)
{

// Logica di accesso al db e di restituzione di una collection di persone.

}


Purtroppo però ottengo sempre errori di conversione tra il tipo object definito al momento della creazione del parametro ed il tipo Person che è il tipo custom che vorrei passare al metodo.

Questo è l'errore che ottengo:

Object of type 'MyProject.Person' cannot be converted to type 'MyProject.Person'.


Il tutto funziona, a parte il collegamento del objectdatasource alla gridview con passaggio di parametro di tipo Person.

Mi rendo conto che il problema è un po' complesso e non facile da spiegare, spero di essere stato chiaro e che qualcuno lo abbia già affrontato e mi possa dare una mano.

Saluti Miko.

Modificato da Miko_d il 07 maggio 2008 17.33 -

RE: Passare un parametro di tipo Object ad un ObjectDataSource
nostromo è online. Ultima attività: 05/07/2008 0.40.19nostromo
Inserito il: 07 maggio 2008 11.40
Microsoft Most Valuable Professional
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 11537 messaggi dal 18 feb 2004
dai un occhiata allo script #921

ciao marco

Where we're going, we don't need roads!
http://nostromo.spaces.live.com/default.aspx
RE: Passare un parametro di tipo Object ad un ObjectDataSource
Miko_d non è online. Ultima attività: 20/05/2008 10.53.44Miko_d
Inserito il: 07 maggio 2008 13.56
116 messaggi dal 21 lug 2002
Ciao e grazie per la risposta,
è proprio da quello script che ho preso spunto, infatti l'evento _Selecting è stato implementato allo stesso modo, il problema è pero sempre lo stesso e cioè la conversione del parametro che passo al metodo da object al mio tipo custom cioè person.

Saluti.

Modificato da Miko_d il 07 maggio 2008 13.59 -

RE: Passare un parametro di tipo Object ad un ObjectDataSource
nostromo è online. Ultima attività: 05/07/2008 0.40.19nostromo
Inserito il: 07 maggio 2008 14.12
Microsoft Most Valuable Professional
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 11537 messaggi dal 18 feb 2004
vero scusa andavo di fretta.

mmm l'errore è strano, provato a cancellare tutti gli assembly temporanei?

ciao marco

Where we're going, we don't need roads!
http://nostromo.spaces.live.com/default.aspx
RE: Passare un parametro di tipo Object ad un ObjectDataSource
Miko_d non è online. Ultima attività: 20/05/2008 10.53.44Miko_d
Inserito il: 07 maggio 2008 16.46
116 messaggi dal 21 lug 2002
Si già provato, poi la macchina e stata riavviata, purtroppo è da un paio di giorni che ci sbatto.

Saluti.

RE: Passare un parametro di tipo Object ad un ObjectDataSource
nostromo è online. Ultima attività: 05/07/2008 0.40.19nostromo
Inserito il: 07 maggio 2008 16.53
Microsoft Most Valuable Professional
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 11537 messaggi dal 18 feb 2004
mmm mica ho capito il fatto che la macchina è stata riavviata.

che riga segnala l'errore?

ciao marco

Where we're going, we don't need roads!
http://nostromo.spaces.live.com/default.aspx
RE: Passare un parametro di tipo Object ad un ObjectDataSource
Miko_d non è online. Ultima attività: 20/05/2008 10.53.44Miko_d
Inserito il: 07 maggio 2008 17.31
116 messaggi dal 21 lug 2002
Scusa ma la stachezza si fa sentire
Ho provato ad eliminare il file AssemblyInfo.cs ma l'errore è sempre lo stesso, era questo che intendevi?

Questo è l'errore che ricevo, si verifica in fase di run-time, mentre il build ha esito positivo.

Server Error in '/MyProject' Application.
--------------------------------------------------------------------------------

Object of type 'MyProject.Person' cannot be converted to type 'MyProject.Person'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Object of type 'MyProject.Person' cannot be converted to type 'MyProject.Person'.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[ArgumentException: Object of type 'MyProject.Person' cannot be converted to type 'MyProject.Person'.]
System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr) +786
System.Reflection.MethodBase.CheckArguments(Object[] parameters, Binder binder, BindingFlags invokeAttr, CultureInfo culture, Signature sig) +199
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +336
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method, Boolean disposeInstance, Object& instance) +480
System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1960
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +17
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +50
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2041




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433


Saluti Miko.

RE: Passare un parametro di tipo Object ad un ObjectDataSource
nostromo è online. Ultima attività: 05/07/2008 0.40.19nostromo
Inserito il: 08 maggio 2008 10.08
Microsoft Most Valuable Professional
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 11537 messaggi dal 18 feb 2004
io temo si sia incasinato il compilatore, prova a cancellare tutti i file:

%windir%\Microsoft.NET\Framework\v2.0.50727\Temporary\.

o altrimenti prova a creare un nuovo progetto

ciao marco

Where we're going, we don't need roads!
http://nostromo.spaces.live.com/default.aspx


Pagine: [1] 2 Avanti >>
| Torna al forum
Vai a:

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums