+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Nessun valore specificato per alcuni parametri necessari

  1. #1
    JackCo non è in linea Novello
    Post
    5

    Nessun valore specificato per alcuni parametri necessari

    Salve a tutti,

    sto scrivendo una funzione che mi restituisca un DATASET con i dati che mi devono popolare una detailview in asp.net 2.0, sono nuovo del linguaggio quindi molto probabilmente ho fatto un errore da niente, ma non riesco a trovarlo e non so dove sbattere la testa. Vi riporto il codice e l'errore. Per Favore AIUTATEMI!! Grazie.


    codice:
    PublicOverloadsSharedFunction GetGruppiDateXEdizione(ByVal Anno AsInteger) As DataTable
    Dim Ds As DataSet
    Ds = New DataSet("GruppiDate")
    Dim DataGr As DataTable = Ds.Tables.Add("DataGr")
    Dim Conn AsNew OleDbConnection()
    Try
    Conn.ConnectionString() = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:Websites/Sconcertando/App_Data/SconcertandoDataBase.mdb"
    Dim Edizione As Edizione
     
    Conn.Open()
    Edizione = GetEdizione(Anno)
    Dim AnnoEd AsInteger = Edizione.AnnoEd
    Dim InizioEd AsDate = CDate(Edizione.InizioEd.ToString("d"))
    Dim FineEd AsDate = CDate(Edizione.FineEd.ToString("d"))
    Dim IdEd AsInteger = Edizione.IdEdizione
    Dim contatore AsInteger = 0
    Dim NomeColonna AsString = Nothing
    Dim Colonna As DataColumn
    NomeColonna = "IdData"
    Colonna = New DataColumn(NomeColonna)
    Colonna.DataType = GetType(Integer)
    DataGr.Columns.Add(Colonna)
    NomeColonna = "Data"
    Colonna = New DataColumn(NomeColonna)
    Colonna.DataType = GetType(Date)
    DataGr.Columns.Add(Colonna)
    NomeColonna = "InizioConcertoOre"
    Colonna = New DataColumn(NomeColonna)
    Colonna.DataType = GetType(String)
    DataGr.Columns.Add(Colonna)
    NomeColonna = "TitoloSerata"
    Colonna = New DataColumn(NomeColonna)
    Colonna.DataType = GetType(String)
    DataGr.Columns.Add(Colonna)
    Dim SqlStr AsString = "SELECT * FROM [DataSerata] WHERE [Data] >= #" + InizioEd.ToString() + "# AND [Data] <= #" + FineEd.ToString() + "# ORDER BY [Data]"
    Dim SqlData AsNew OleDbCommand(SqlStr, Conn)
    SqlData.Parameters.AddWithValue("InizioEd", InizioEd)
    SqlData.Parameters.AddWithValue("FineEd", FineEd)
     
    Dim reader As OleDbDataReader = SqlData.ExecuteReader()
    DoWhile reader.Read()
    Dim NomeRiga AsString = Nothing
    Dim Riga As DataRow
    Riga = DataGr.NewRow()
    Riga.Item("IdData") = CInt(reader("IdData"))
    Riga.Item("Data") = CDate(reader("Data"))
    Riga.Item("InizioConcertoOre") = reader("InizioConcertoOre").ToString()
    Riga.Item("TitoloSerata") = CStr(reader("TitoloSerata"))
    Dim SqlRelazione AsNew OleDbCommand("SELECT * FROM [EdGrData] WHERE [IdData] = ? ORDER BY [TipoGruppo]", Conn)
    SqlRelazione.Parameters.AddWithValue("IdData", Riga.Item("IdData"))
     
    Dim read As OleDbDataReader = SqlRelazione.ExecuteReader()
    DoWhile read.Read()
    contatore = contatore + 1
    Dim IdGr AsInteger = CInt(read("IdGruppo"))
    Dim Gruppo As Gruppo = GetGruppo(IdGr)
    Dim NameGr AsString = Gruppo.NomeGruppo()
     
    NomeColonna = "IdGr" + contatore.ToString()
    If DataGr.Columns.Contains(NomeColonna) Then
    Riga.Item(NomeColonna) = CInt(read("IdGruppo"))
    Else
    Colonna = New DataColumn(NomeColonna)
    Colonna.DataType = GetType(Integer)
    DataGr.Columns.Add(Colonna)
    Riga.Item(NomeColonna) = CInt(read("IdGruppo"))
    EndIf
     
    NomeColonna = "NomeGr" + contatore.ToString()
    If DataGr.Columns.Contains(NomeColonna) Then
    Dim TipoGr AsInteger = CInt(read("TipoGruppo"))
    SelectCase TipoGr
    Case 1 'Gruppo Principale
    Riga.Item(NomeColonna) = "<a href='DettGruppo.aspx?IdGruppo=" + IdGr.ToString() + "' class='Principale'>" + NameGr.ToString() + "</a>"
    Case 2 'Gruppo Spalla
    Riga.Item(NomeColonna) = "<a href='DettGruppo.aspx?IdGruppo=" + IdGr.ToString() + "' class='Spalla'>" + NameGr.ToString() + "</a>"
    Case 3 'Gruppo Secondo Palco
    Riga.Item(NomeColonna) = "<a href='DettGruppo.aspx?IdGruppo=" + IdGr.ToString() + "' class='SecondoPalco'>" + NameGr.ToString() + "</a>"
    EndSelect
    Else
    Colonna = New DataColumn(NomeColonna)
    Colonna.DataType = GetType(String)
    DataGr.Columns.Add(Colonna)
    Dim TipoGr AsInteger = CInt(read("TipoGruppo"))
    SelectCase TipoGr
    Case 1 'Gruppo Principale
    Riga.Item(NomeColonna) = "<a href='DettGruppo.aspx?IdGruppo=" + IdGr.ToString() + "' class='Principale'>" + NameGr.ToString() + "</a>"
    Case 2 'Gruppo Spalla
    Riga.Item(NomeColonna) = "<a href='DettGruppo.aspx?IdGruppo=" + IdGr.ToString() + "' class='Spalla'>" + NameGr.ToString() + "</a>"
    Case 3 'Gruppo Secondo Palco
    Riga.Item(NomeColonna) = "<a href='DettGruppo.aspx?IdGruppo=" + IdGr.ToString() + "' class='SecondoPalco'>" + NameGr.ToString() + "</a>"
    EndSelect
    EndIf
     
    NomeColonna = "VotoGr" + contatore.ToString()
    If DataGr.Columns.Contains(NomeColonna) Then
    Riga.Item(NomeColonna) = Gruppo.VotoGruppo()
    Else
    Colonna = New DataColumn(NomeColonna)
    Colonna.DataType = GetType(Integer)
    DataGr.Columns.Add(Colonna)
    Riga.Item(NomeColonna) = Gruppo.VotoGruppo()
    EndIf
     
     
     
    Loop
    read.Close()
    Loop
    reader.Close()
    
    Finally
    Conn.Dispose()
    EndTry
    Return DataGr
    EndFunction
    Nessun valore specificato per alcuni parametri necessari.

    Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

    Dettagli eccezione: System.Data.OleDb.OleDbException: Nessun valore specificato per alcuni parametri necessari.

    Errore nel codice sorgente:

    Durante l'esecuzione della richiesta Web corrente è stata generata un'eccezione non gestita. Per informazioni sull'origine e la posizione dell'eccezione, vedere l'analisi dello stack dell'eccezione riportata di seguito.
    Analisi dello stack:

    [OleDbException (0x80040e10): Nessun valore specificato per alcuni parametri necessari.] System.Data.OleDb.OleDbCommand.ExecuteCommandTextE rrorHandling(OleDbHResult hr) +1003520 System.Data.OleDb.OleDbCommand.ExecuteCommandTextF orSingleResult(tagDBPARAMS dbParams, Object& executeResult) +255 System.Data.OleDb.OleDbCommand.ExecuteCommandText( Object& executeResult) +188 System.Data.OleDb.OleDbCommand.ExecuteCommand(Comm andBehavior behavior, Object& executeResult) +58 System.Data.OleDb.OleDbCommand.ExecuteReaderIntern al(CommandBehavior behavior, String method) +161 System.Data.OleDb.OleDbCommand.ExecuteReader(Comma ndBehavior behavior) +116 System.Data.OleDb.OleDbCommand.System.Data.IDbComm and.ExecuteReader(CommandBehavior behavior) +4 System.Data.Common.DbDataAdapter.FillInternal(Data Set dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +130 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +287 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +92 System.Web.UI.WebControls.SqlDataSourceView.Execut eSelect(DataSourceSelectArguments arguments) +1297 System.Web.UI.WebControls.AccessDataSourceView.Exe cuteSelect(DataSourceSelectArguments arguments) +58 System.Web.UI.WebControls.BaseDataList.GetData() +38 System.Web.UI.WebControls.DataList.CreateControlHi erarchy(Boolean useDataSource) +153 System.Web.UI.WebControls.BaseDataList.OnDataBindi ng(EventArgs e) +54 System.Web.UI.WebControls.BaseDataList.DataBind() +55 System.Web.UI.WebControls.BaseDataList.EnsureDataB ound() +60 System.Web.UI.WebControls.BaseDataList.CreateChild Controls() +69 System.Web.UI.Control.EnsureChildControls() +87 System.Web.UI.Control.PreRenderRecursiveInternal() +44 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842
    Ultima modifica di TheTruster; 22-05-2009 14:20 

  2. #2
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Luogo
    Messina - Italy
    Post
    7,174
    Blogs
    3
    Spostato in ASP.Net

    TheTruster
    Il Crossposting è vietato dalla Netiquette!




  3. #3
    JackCo non è in linea Novello
    Post
    5
    Volevo specificare una cosa della quale mi sono accorto ora:
    i due comandi riportati nel codice:

    SqlData.Parameters.AddWithValue("InizioEd", InizioEd)
    SqlData.Parameters.AddWithValue("FineEd", FineEd)

    Sono stati messi per fare una prova ma poi li ho tolti ed ho utilizzato una variabile String.

    Sono Disperato, sono cinque giorni che cerco una soluzione, in tutti gli articoli che ho trovato con lo stesso errore le soluzioni esposte non hanno avuto successo nel mio caso!
    Per favore aiutatemi. Grazie!

  4. #4
    L'avatar di elisab
    elisab non è in linea Very Important Person
    Post
    1,750
    Ciao
    è sul primo executeReader che hai l'errore?
    Prova a vedere se la query che ottieni dopo la concatenazione funziona correttamente in Access. Sarebbe meglio usare i parametri.

    Se elenchi i campi da prelevare e uno dei nomi è errato ti viene restituito quell'errore, mi sembra che succeda anche se nella clausula WHERE hai diversità fra il tipo di dato del campo e il criterio di ricerca.
    Es. ... WHERE Id='1'
    quando id è un campo numero l'1 non va fra apici.

    Ciao
    Il Crossposting è vietato dalla Netiquette.

    Tutti gli utenti sono invitatati ad indicare nel titolo la versione di VB, Visual Studio o il Framework di compilazione.

    NB: In presenza del SyntaxHighlighter (codice colorato con numeri di riga a lato) prima di copiare il codice eseguire doppio click sulla finestra di codice, altrimenti mancheranno tutti i ritorno a capo.

  5. #5
    JackCo non è in linea Novello
    Post
    5
    Quote Originariamente inviato da elisab Visualizza il messaggio
    è sul primo executeReader che hai l'errore?
    Prova a vedere se la query che ottieni dopo la concatenazione funziona correttamente in Access. Sarebbe meglio usare i parametri.

    Se elenchi i campi da prelevare e uno dei nomi è errato ti viene restituito quell'errore, mi sembra che succeda anche se nella clausula WHERE hai diversità fra il tipo di dato del campo e il criterio di ricerca.
    Es. ... WHERE Id='1'
    quando id è un campo numero l'1 non va fra apici.

    Ciao
    Ciao Elisab,
    L'errore non riesco a capire dove sia, comunque ho ritestato tutte le QUERY in access e problemi non ne danno, ho anche inserito i parametri (Tra l'altro mancavano solo nel primo EXECUTEREADER) precisando per ognuno il relativo tipo (CInt e CDate).

    Mi sono accorto anche che la funzione GetGruppo se inserita in una pagina mi da lo stesso errore :
    te la facco vedere, non è una cosa complicata, le query sono esatte, ho usato i parametri e non mi sembra la sintassi sia errata. Allora perchè mi da errore?


    codice:
     
    Public Shared Function GetGruppo(ByVal IdGruppo As Integer) As Gruppo
    Dim Group As Gruppo
    Dim Conn As New OleDbConnection()
    Try
    Conn.ConnectionString() = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/Websites/Sconcertando/App_Data/SconcertandoDataBase.mdb"
     
    Dim Sql As New OleDbCommand("SELECT * FROM [Gruppo] WHERE [IdGruppo] = ?", Conn)
    Sql.CommandType = CommandType.Text
     
    Sql.Parameters.AddWithValue("IdGruppo", CInt(IdGruppo))
    Conn.Open()
    Dim r As OleDbDataReader = Sql.ExecuteReader()
    r.Read()
    Group = New Gruppo(CInt(r("IdGruppo")), CStr(r("NomeGruppo")), CStr(r("PresentazioneGruppo")), CStr(r("WebGruppo")), CInt(r("VotoGruppo")))
    r.Close()
     
    Finally
    Conn.Dispose()
    End Try
    Return Group
    End Function


    Secondo te, mi sono dimenticato qualcosa? Ho sbagliato qualcosa?

    Grazie per il tuo tempo.
    Ciao

  6. #6
    JackCo non è in linea Novello
    Post
    5
    Ho risolto, grazie per l'aiuto... era un apice fuori posto!!

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi