ASP.Net problema con datareader

mercoledì 12 aprile 2006 - 15.54

BrandonHeat Profilo | Junior Member

Ciao a tutti!Di nuovo io,per un problema che nn riesco a risolvere e non so più dove sbattere la testa!
Il problema è questo:
uso delle query parametriche, i record devono essere contenuti nel datareader..posto il codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Cosa sbaglio?
Grazie mille!Ciao!

Brandon Heat

micto27 Profilo | Senior Member

Ciao,
guardando velocemente il codice che hai postato non mi torna la riga

cmd.CommandType=Data.CommandType.StoredProcedure

con tale opzione la proprietà CommandText viene interpretata come il nome
di una Stored Procedure, direi che dovresti usare

cmd.CommandType=Data.CommandType.Text

Un altro dubbio (che però non c'entra con l'errore che ottieni):
le colonne DataInizio e DataFine sembrerebbero essere di tipo DateTime,
perchè i parametri definiti su tali colonne sono invece definiti di tipo string?

Michele

BrandonHeat Profilo | Junior Member

Ciao!
Grazie per l'interessamento..
Ho provato il commandtype.text, ma mi da lo stesso errore purtroppo..
rispondo alla tua domanda..sn dichiarate come stringa, perchè uso la format, e in vb6 la format richiedeva una stringa..magari in .net non c'è questo problema, proverò..comunque..come cavolo faccio a fargli fare quell'execute reader????
Non so più che fare..
Grazie mille!!!!
Brandon Heat

micto27 Profilo | Senior Member

ho guardato meglio e credo di aver capito:

tu usi lo statement:
drQuery=cmd.ExecuteReader(cmd.CommandText)

è sbagliato il parametro che passi al metodo ExecuteReader (che se specificato deve essere il valore di un'enumerazione apposita)

prova con
drQuery=cmd.ExecuteReader()
oppure
drQuery=cmd.ExecuteReader(CommandBehavior.Default)

ciao, Michele

BrandonHeat Profilo | Junior Member

Grazie per la risp..
se faccio cmd.executereader() mi da errore "Nessun valore specificato per alcuni parametri necessari", se faccio cmd.executereader(CommandBehavior.Default) mi da errore, non facendomi partire nemmeno il programma (dicendo che commandbehavior is not declared)..come faccio?
Grazie mille!!!
Brandon Heat

micto27 Profilo | Senior Member

il tuo command prevede 2 parametri, tu però, pur invocando 2 volte
cmd.Parameters.Add(prm)

in realtà passi sempre il riferimento allo stesso oggetto, prima con certi valori
e poi con altri.
Secondo me, dopo aver eseguito il primo

cmd.Parameters.Add(prm)

dovresti istanziare un nuovo parametro invocando una seconda volta

prm = new OleDbParameter
....
.....

ciao

BrandonHeat Profilo | Junior Member

Lo faccio!Se vedi,nel codice è già presente quanto mi dici,eppure non funziona lo stesso!Posso fare una prova cambiando i nomi..nn riesco a capire che cavolo sbaglio..comunque ti ringrazio davvero per l'aiuto che mi stai dando!
Grazie!
Brandon Heat

micto27 Profilo | Senior Member

E' vero scusami, la riga che dicevo c'è e mi è sfuggita.
Ora a che punto sei ?
Al problema che ti viene segnalata la mancanza di parametri che sono previsti?

Con l'ultimo input (quello del parametro del metodo ExecuteReader)
hai provato solo con CommandType = StoredProcedure o anche con
CommandType = Text?

Ciao

BrandonHeat Profilo | Junior Member

Tutti e due!E non funziona!!
Grazie mille!!
Ciao!!!
Brandon Heat

micto27 Profilo | Senior Member

Ciao, non so se hai ancora il problema aperto, comunque tanto per provare
mi sono copiato il tuo codice e ho provato.
Con qualche ritocco ha funzionato.

Ti posto il codice con il quale a me funziona.
Ciao, Michele

_______________________________________
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

BrandonHeat Profilo | Junior Member

Ho provato il tuo codice, ma nn mi funziona..nn è che sbaglio qualcosa in access?Come fai le query in access??
Grazie per il tuo aiuto!!!!
Ciao!!!
Brandon Heat

BrandonHeat Profilo | Junior Member

Ciao!
Innanzitutto volevo ringraziarti per la tua e mail..ho provato il tuo db, mi funziona, però nel mio db faccio le cose in maniera diversa forse per quello non mi funziona: innanzitutto creo una query direttamente in access, query che per funzionare necessita di due parametri ossia una data di inizio e una di fine (io vorrei da codice passare questi dati alla query..) solo che non ci riesco.. spero tu mi possa aiutare a capire come fare a passare dei dati ad una query che necessita di parametri..grazie mille per il tuo aiuto e la tua grande disponibilità!!!
Brandon Heat

micto27 Profilo | Senior Member

Ciao,

ora ho capito un po' meglio la situazione.
Per passare parametri alla query Access puoi fare così:

cmd.CommandText = "query" (solo il nome della query che sarà interpretato come stored procedure)
cmd.CommandType = Data.CommandType.StoredProcedure

ovviamente nel design della query su Access avrai previsto le condizioni
come nella figura che allego.

Spero ti funzioni, Michele

803x321 74Kb

BrandonHeat Profilo | Junior Member

Grazie mille davvero, adesso funziona!!!!
Ti ringrazio davvero di cuore, grazie per la tua disponibilità e per il tuo grande aiuto!!!!!!!
Grazie mille!!!!!!!!!!!
Brandon Heat
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