9 messaggi dal 04 dicembre 2017
ho una variabile di tipo numerico (nNumero) e non riesco a visualizzare i risultati nella gridview. mi da questo errore Formato della stringa di input non corretto.
DOVE SBAGLIO?

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<%
Dim nNumero As Integer = 150
%>

<div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" ItemType="double" DataKeyNames="numerocampionato">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ArchivioConnectionString6 %>" SelectCommand="SELECT * FROM [RisultatiDefinitivi] WHERE ([NumeroCampionato] = @NumeroCampionato)">
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" DefaultValue="nNumero" Name="NumeroCampionato" PropertyName="SelectedValue" Type="Double" />
</SelectParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
475 messaggi dal 11 febbraio 2013
Scusa ma se vuoi passare un valore di default devi metterlo appunto direttamente nel controlparameter

inoltre hai impostato come propertyname selectedvalue quindi dovresti associare un controllo non so una dropdownlist che contenga numeri...
9 messaggi dal 04 dicembre 2017
si certo se metto ad esempio 150 nel defaultvalue funziona questo lo so anche io ma io voglio che la variabile di memoria nNumero agisca.
Non so se riesco a spiegarmi solitamente se io faccio una cosa del genere

dim Nnumero as integer=150
SELECT * FROM [RisultatiDefinitivi] WHERE ([NumeroCampionato]=" & nNumero

con asp web questo non funziona

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<%
Dim nNumero As Integer = 150
%>

<div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" ItemType="double" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="IDSquadra" HeaderText="IDSquadra" SortExpression="IDSquadra" />
<asp:BoundField DataField="Squadre" HeaderText="Squadre" SortExpression="Squadre" />
<asp:BoundField DataField="Giocatori" HeaderText="Giocatori" SortExpression="Giocatori" />
<asp:BoundField DataField="NumeroCampionato" HeaderText="NumeroCampionato" SortExpression="NumeroCampionato" />
<asp:BoundField DataField="Data" HeaderText="Data" SortExpression="Data" />
<asp:BoundField DataField="Risultato" HeaderText="Risultato" SortExpression="Risultato" />
<asp:BoundField DataField="TipoGioco" HeaderText="TipoGioco" SortExpression="TipoGioco" />
<asp:BoundField DataField="Tipo" HeaderText="Tipo" SortExpression="Tipo" />
<asp:BoundField DataField="Nick" HeaderText="Nick" SortExpression="Nick" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ArchivioConnectionString7 %>" SelectCommand="SELECT * FROM [RisultatiDefinitivi] where numerodicampionato="& nNumero></asp:SqlDataSource>
</div>
</form>
</body>
</html>
475 messaggi dal 11 febbraio 2013
Se vuoi filtrare la tabella devi passare dei valori al parametro della query (@nome)

per esempio se metti una select l'utente può selezionare il valore e cambiare il risultato della
tabella

esempio
<asp:DropDownList ID="nomeSelect" runat="server"
         AutoPostBack="true">
        <asp:ListItem>1</asp:ListItem>
        <asp:ListItem>2</asp:ListItem>
        <asp:ListItem>3</asp:ListItem>
        <asp:ListItem>...</asp:ListItem>
        
    </asp:DropDownList>

nell sqlDatasource metti
...
SelectCommand="SELECT * FROM tabella WHERE (nomeCampo = @nomeParametro)"
<SelectParameters>
            <asp:ControlParameter ControlID="nomeSelect" Name="nomeParametro" PropertyName="SelectedValue" Type="Int32" />
        </SelectParameters>


se hai un mdf di northwind prova questo
<asp:DropDownList ID="ddlId" runat="server"
         AutoPostBack="true" >
        <asp:ListItem Value="">-seleziona-</asp:ListItem>
        <asp:ListItem>ALFKI</asp:ListItem>
        <asp:ListItem>ANATR</asp:ListItem>
        <asp:ListItem>ANTON</asp:ListItem>
        <asp:ListItem>AROUT</asp:ListItem>
        <asp:ListItem>BERGS</asp:ListItem>
    </asp:DropDownList>

    <asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="CustomerID" DataSourceID="SqlDataSource2">
        <Columns>
            <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID" />
            <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" />
            <asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" CancelSelectOnNullParameter="false"
        ConnectionString="<%$ ConnectionStrings:northwindConnectionString2 %>" 
        SelectCommand="SELECT * FROM [Customers] WHERE ([CustomerID] = COALESCE(@CustomerID,CustomerID))">
        <SelectParameters>
            <asp:ControlParameter ControlID="ddlId" Name="CustomerID" 
                ConvertEmptyStringToNull="true"
                PropertyName="SelectedValue" Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>


cosi puoi filtrare la gridview a piacere
Modificato da jjchuck il 04 dicembre 2017 21.34 -
9 messaggi dal 04 dicembre 2017
Intanto grazie mille per la risposta abbastanza chiara.
Però mi spiego meglio io ho un database chiamato archivio una delle tabelle si chiama NUMEROCAMPIONATO.
Siccome si gioca ogni venerdì il numero campionato varia ogni settimana io vorrei che gridview mi facesse vedere solo i risultati dell'ultimo campionato ad esempio il campionato numero 150.
quindi io ho pensato prima di ricavarmi l'ultimo record poi metterlo in una variabile e passarlo alla query. tieni presente che il campo NUMEROCAMPIONATO è NUMERICO.
Spero di essermi spiegato meglio
grazie
Massimo
475 messaggi dal 11 febbraio 2013
Allora credo basti che nella query che popola il gridview tu faccia qualcosa tipo

... WHERE Numero = (SELECT MAX(id) FROM TuaTabella)


se invece vuoi rendere selezionabile il numero di campionato resta valido quel che ti ho detto:
puoi popolare una dropdonwlist con SELECT Id FROM TuaTabelle ORDER BY Id DESC cosi al caricamento della
gridview visualizzi sempre l'ultimo campionato senza precluderti la possibilità di visualizzare gli altri

ciao
9 messaggi dal 04 dicembre 2017
Grazieeeeeeeee ora provo subito poi ti faccio sapere grazie ancora
9 messaggi dal 04 dicembre 2017
Funziona alla perfezioneeeeee. Grazie davvero
Una sola cosa non riesco ancora a capire come e dove si dichiara una variabile di memoria e come si passa la variabile alla select.

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.