492 messaggi dal 08 gennaio 2007
Ciao, ho la necessità di recuperare dei record da una tabella sql, tramite VS ho aggiunto un file dbml alla soluzione e ho gli inserito dal server explorer le due tabelle che ho sul db(schedulazioni e users) e ho aggiunto i metodi/stored procedure. Ora da codice cerco di invocare uno dei metodi, ma mi accorgo che l'istanza del datacontext mi solleva un'eccezione:
((System.Exception)((new System.Linq.SystemCore_EnumerableDebugView<Schedulazioni>
(_dataContext.Schedulazionis)).Items)).StackTrace
at System.Data.Linq.DBConvert.ChangeType(Object value, Type type)
   at Read_Schedulazioni(ObjectMaterializer`1 )
   at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()
   at System.Linq.SystemCore_EnumerableDebugView`1.get_Items()
Data at the root level is invalid. Line 1, position 1.

Cosa causa l'eccezione se il processo è completamente automatico?
3.168 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

sinceramente non mi è mai capitata un'eccezione del genere, potresti postare un pò di codice

Byez

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
492 messaggi dal 08 gennaio 2007
Ciao, stasera appena avviato VS2008 carico la soluzione è mi appare questo messaggio:
The connection property in the web.config file is missing or incorrect. The connection string from the .dbml file has been used in its place.
Indagherò, comunque invoco altre funzioni è non mi danno problemi i problemi riguardano questa banalissima sp:
dbo.GetSchedulationByNextDate
AS
  Select * from dbo.Schedulazioni
  order by NextDate asc
  RETURN

Nel dbml il codice generato è il seguente:
[Function(Name="dbo.GetSchedulationByNextDate")]
  public ISingleResult<Schedulazioni> GetSchedulationByNextDate()
  {
    IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())));
    return ((ISingleResult<Schedulazioni>)(result.ReturnValue));
  }

La chiamo così:
System.Data.Linq.ISingleResult<Schedulazioni> next = _dataContext.GetSchedulationByNextDate().ReturnValue;

Prima di questa chiamata però eseguo queste operazioni, che vanno a buon fine:
_dataContext = new DataClassesDataContext();
        ;
        Nullable<int> pp = new int();
        // Controlliamo il numero di schedulazioni in tabella
        _dataContext.NumberOfSchedulation(ref pp);

Fino alla chiamata di NumberOfSchedulation va tutto bene, alla seconda chiamata il dataContext è alle cozze, suggerimenti?
Modificato da Vmark il 28 dicembre 2007 23.12 -
492 messaggi dal 08 gennaio 2007
Ok, niente da fare, l'avviso che mi si mostra all'avvio ancora non l'ho capito, la tabella User è sempre disponibile e non dà problemi altri metodi sulla tabella Schedulazioni, come aggiungere schedulazioni o cancellarle, non danno problemi, nel momento che eseguo una query semplice :
Data at the root level is invalid. Line 1, position 1.

Provo in qualche altro modo... ma mi sarebbe piaciuto capire perchè fa così...che pacco...
107 messaggi dal 26 marzo 2001
Guarda secondo me risolvi tutto cercando le query che vengono generate in fase di debug al + prova eseguire le stesse query a manina e vedi prima se funzionano, come sempre quando ci sono problemi di questo genere bisogna isolare il problema e a mio avviso è solo una questione di relazioni di molteplicità. Ma prova così.

___________________
Emilio Reale
MCP ID: 3355694 MCSD MCDBA MCSE
69 messaggi dal 20 gennaio 2006
www.jntstudio.net
Scusate in anticipo se dico una cosa inesatta ma a naso mi pare che tu stia implementando una interfaccia ISingleResult cercando di passargli più di una sola riga con il metodo GetSchedulationByNextDate()

JackNova (Dario Iacampo)
492 messaggi dal 08 gennaio 2007
Ciao, grazie delle risposte, accedendo in modalità connessa al db non incontro nessun tipo di problema, ricostruisco le istanze della classe Schedulazioni generata dal dbml e proseguo. ISingleResult identifica un set di risultati, non significa necessariamente che il risltato sia una sola riga.
L'avviso che ricevevo al caricamento della soluzione è misteriosamente scomparso, e comunque la stringa di connessione nel web.config era dichiarata correttamente, francamente mi sento un pò disincentivato a utilizzare ancora linqToSql, ma forse è solo un caso isolato dovuto a qualche imprecisione o inesattezza, certo che come query non sembra possa dare adito a cattive interpretazioni, secondo me non è nemmeno la sp, per me è la classe generata...

Torna al forum | Feed RSS

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.