17 messaggi dal 14 febbraio 2006
ho questo problema:
dato il listato seguente quando vado a compilare e processare la riga sottolineata mi viene dato quest'errore:
Nessun valore predefinito per il parametro [@categoria].

questo è il listato

<%@ Page Language="VB" Debug="true" %>
<%@ Register TagPrefix="bike" TagName="intestazione" Src="intestazione.ascx" %>
<%@ Register TagPrefix="bike" TagName="menu" Src="menu.ascx" %>
<%@ import Namespace="system.data" %>
<%@ import Namespace="system.data.oledb" %>
<script runat="server">

sub page_load(sender as object, e as eventargs)
'ottieni categoriaid grazie query
dim categoriaID as string = cstr(request.params("cat"))

'imposta immagine e etichetta
image1.imageurl = "images/" & categoriaID & ".gif"
label1.text = "<b>" & categoriaID & "</b>"

'popola elenco con categorie prodotti
dim objbike as new bikebuilding.bikebuilding


dim objreader as oleDBdataReader =objbike.ottienicategoria(categoriaID)




datalist1.datasource=objreader
datalist1.databind()
objreader.close()
objbike.disponi
end sub

</script>
<html>
<head>
</head>
<body>
<td align="top" width="110">
<asp:Image id="Image1" align="texttop" border="1" runat="server"></asp:Image>
<br />
<asp:Label id="Label1" runat="server"></asp:Label></td>
<td valign="top">
<form runat="server">
<aspataList id="DataList1" runat="server" RepeatColumns="2">
<ItemTemplate>
<table width="200">
<tbody>
<tr>
<td valign="center" width="200">
<b><%# container.dataitem("nome")%></b>
<br />
<%# container.dataitem("descrizione")%>
<br />
<b>Prezzo: </b><%# system.string.format("{0;c}", container.dataitem("prezzo"))%>
<br />
<a href="aggiungialcarrello.aspx?partID=<%# container.dataitem("partid")%>&cat=<%# container.dataitem("categoria")%>"> <font color="#9d0000"><b> Aggiungi
al carrello </b></font> </a></td>
</tr>
</tbody>
</table>
</ItemTemplate>
</aspataList>
</form>
</td>
</body>
</html>


qualcuno potrebbe dirmi cosa fare per risolvere?? grazie..
32 messaggi dal 26 ottobre 2005
A parte il fatto che non vedo nessuna riga sottolineata!

Direi che l'errore te lo da qui:

<a href="aggiungialcarrello.aspx?partID=<%# container.dataitem("partid")%>&cat=<%# container.dataitem("categoria")%>">

Mi viene da pensare che dentro la collection che passi al datalist1.datasource non ci sia un campo dell'oggetto che si chiama "categoria".

Se ottienicategoria(categoriaID) esegue una query verifica che tra le colonne che estrae ci sia "categoria".

PS:

Se mi permetti un consiglio, se ne hai la possibilità ti suggerisco di separare il codice HTML da quello lato server.

Ciao

Stefano

Se vuoi il massimo... devi essere pronto a pagare il massimo!
17 messaggi dal 14 febbraio 2006
ciao.. la riga sottolineata(mi son dimenticato) è questa:

dim objreader as oleDBdataReader =objbike.ottienicategoria(categoriaID)

è qui che mi visulaizza l'errore..

in particolare la funzione ottienicategoria è definita all'interno di un oggetto commerciale (.vb) e questo è il codice che la definisce:

public function ottienicategoria (categoria as string) as _
oledbdatareader
dim reader as oledbdatareader

dim objcmd as new oledbcommand ("ottienicategoria", _
conn)
objcmd.commandtype = commandtype.storedprocedure

dim param = new oledbparameter ("@categoria", _
oledbtype.char)
param.value = categoria
objcmd.parameters.add(param)

try
conn.open
reader = objcmd.executereader
catch e as exception
throw e
end try

return reader
end function

e la stored procedure che richiama (ottienicategoria(si chiama così anche lei)) è definita cos':

SELECT partid, nome, prezzo, descrizione, categoria
FROM tblparti
WHERE categoria=[@categoria];
non conosco bene la sintassi di Access e non sono un mago di Sql, sei sicuro delle parentesi quadre intorno al parametro?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
quà inoltre dovresti trovare forse qualcosa

http://www.databasejournal.com/features/msaccess/article.php/3101941

fammi sapere

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
17 messaggi dal 14 febbraio 2006
le parentesi le mette in automatico access..
dai un occhiata anche quà


http://groups.google.it/group/microsoft.public.it.dotnet.ado/browse_frm/thread/e3795c18e7b4b701/96c96d720b59a0d6?lnk=st&q=access+Nessun+valore+predefinito+per+il+parametro&rnum=1&hl=it#96c96d720b59a0d6


ciao marco, posso esserti poco di aiuto perche non ho mai usato access.
Modificato da nostromo il 15 febbraio 2006 14.13 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
17 messaggi dal 14 febbraio 2006
ti ringrazio molto per le risposte e i link..

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.