ciao scusa il disturbo ma navigando ho visto che hai avuto e poi risolto un porblema simile al mio riguardo una pagina asp.net
ho questo problema:
dato il listato seguente quando vado a compilare e processare la riga
dim objreader as oleDBdataReader =objbike.ottienicategoria(categoriaID)
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>
la funzione ottienicategoria è dichiarata all'interno di un file .vb (corretamente compilato) come segue:
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 in access ottienicategoria(si chiama cosi anche lei) recita così:
SELECT partid, nome, prezzo, descrizione, categoria
FROM tblparti
WHERE categoria=[@categoria];
sapreste darmi una mano?? grazie
ho questo problema:
dato il listato seguente quando vado a compilare e processare la riga
dim objreader as oleDBdataReader =objbike.ottienicategoria(categoriaID)
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>
la funzione ottienicategoria è dichiarata all'interno di un file .vb (corretamente compilato) come segue:
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 in access ottienicategoria(si chiama cosi anche lei) recita così:
SELECT partid, nome, prezzo, descrizione, categoria
FROM tblparti
WHERE categoria=[@categoria];
sapreste darmi una mano?? grazie