5 messaggi dal 05 febbraio 2010
Buongiorno a tutti. Mi sono avvicinato da poco ad asp.net e subito ho iniziato ad avere problemi. Tramite WebExpression ho utilizzato il componente Gridview per visualizzare e modificare elementi di un database access. Tutta la parte della visualizzazione funziona correttamente ma appena vado in modifica mi fa modificare i campi ma all'atto della trasmissione al database mi ritorna un errore di runtime e nello specifico "nessun valore specificato per alcuni parametri necessari". Stessa cosa succede per la eliminazione e l'inserimento di un nuovo recor. E' come se non si riuscisse a dialogare con il database. Ho fatto mille prove, utilizzando anche altri compinenti similari ma niente restituisce sempre lo stesso errore.
Aiuto!!!
un pò di markup sarebbe utile per analizzare il problema, usi un AccessDataSource? sicuro di passare tutti i parametri all'operazioni che ti danno errore?

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
5 messaggi dal 05 febbraio 2010
Si utilizzo un AccessDataSource. Anche all'atto della costruzione del gridview tramite il test della query il risultato è giusto. E' all'atto delle modifiche che da l'errore.
Grazie
ti ripeto, senza vedere il markup è impossibile risolvere, se puoi postane una porzione

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
5 messaggi dal 05 febbraio 2010
Ecco:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>Senza nome 1</title>
</head>

<body>

<form id="form1" runat="server">
<table style="width: 100%">
<tr>
<td style="width: 421px">
<asp:GridView runat="server" id="GridView1" AutoGenerateColumns="False" DataSourceID="AccessDataSource1" DataKeyNames="CIP">
<Columns>
<asp:commandfield ShowSelectButton="True">
</asp:commandfield>
<asp:boundfield DataField="IDReparto" HeaderText="IDReparto" SortExpression="IDReparto">
</asp:boundfield>
<asp:boundfield DataField="CIP" HeaderText="CIP" ReadOnly="True" SortExpression="CIP">
</asp:boundfield>
<asp:boundfield DataField="cin" HeaderText="cin" SortExpression="cin">
</asp:boundfield>
<asp:boundfield DataField="Cognome" HeaderText="Cognome" SortExpression="Cognome">
</asp:boundfield>
<asp:boundfield DataField="Nome" HeaderText="Nome" SortExpression="Nome">
</asp:boundfield>
</Columns>
</asp:GridView>
</td>
<td>
<asp:DetailsView runat="server" Width="125px" Height="50px" id="DetailsView1" AutoGenerateRows="False" DataSourceID="AccessDataSource2" DataKeyNames="CIP">
<Fields>
<asp:boundfield DataField="IDReparto" HeaderText="IDReparto" SortExpression="IDReparto">
</asp:boundfield>
<asp:boundfield DataField="CIP" HeaderText="CIP" ReadOnly="True" SortExpression="CIP">
</asp:boundfield>
<asp:boundfield DataField="sex" HeaderText="sex" SortExpression="sex">
</asp:boundfield>
<asp:boundfield DataField="cin" HeaderText="cin" SortExpression="cin">
</asp:boundfield>
<asp:boundfield DataField="Cognome" HeaderText="Cognome" SortExpression="Cognome">
</asp:boundfield>
<asp:boundfield DataField="Nome" HeaderText="Nome" SortExpression="Nome">
</asp:boundfield>
<asp:boundfield DataField="Note" HeaderText="Note" SortExpression="Note">
</asp:boundfield>
<asp:checkboxfield DataField="ForzaAss" HeaderText="ForzaAss" SortExpression="ForzaAss">
</asp:checkboxfield>
<asp:boundfield DataField="SpecAb" HeaderText="SpecAb" SortExpression="SpecAb">
</asp:boundfield>
<asp:commandfield ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True">
</asp:commandfield>
</Fields>
</asp:DetailsView>
<asp:AccessDataSource runat="server" ID="AccessDataSource2" DeleteCommand="DELETE FROM [Nomi] WHERE [CIP] = ? AND (([IDReparto] = ?) OR ([IDReparto] IS NULL AND ? IS NULL)) AND (([sex] = ?) OR ([sex] IS NULL AND ? IS NULL)) AND (([cin] = ?) OR ([cin] IS NULL AND ? IS NULL)) AND (([Cognome] = ?) OR ([Cognome] IS NULL AND ? IS NULL)) AND (([Nome] = ?) OR ([Nome] IS NULL AND ? IS NULL)) AND (([Note] = ?) OR ([Note] IS NULL AND ? IS NULL)) AND (([ForzaAss] = ?) OR ([ForzaAss] IS NULL AND ? IS NULL)) AND (([SpecAb] = ?) OR ([SpecAb] IS NULL AND ? IS NULL))" InsertCommand="INSERT INTO [Nomi] ([IDReparto], [sex], [cin], [Cognome], [Nome], [Note], [ForzaAss], [SpecAb]) VALUES (?, ?, ?, ?, ?, ?, ?, ?)" UpdateCommand="UPDATE [Nomi] SET [IDReparto] = ?, [sex] = ?, [cin] = ?, [Cognome] = ?, [Nome] = ?, [Note] = ?, [ForzaAss] = ?, [SpecAb] = ? WHERE [CIP] = ? AND (([IDReparto] = ?) OR ([IDReparto] IS NULL AND ? IS NULL)) AND (([sex] = ?) OR ([sex] IS NULL AND ? IS NULL)) AND (([cin] = ?) OR ([cin] IS NULL AND ? IS NULL)) AND (([Cognome] = ?) OR ([Cognome] IS NULL AND ? IS NULL)) AND (([Nome] = ?) OR ([Nome] IS NULL AND ? IS NULL)) AND (([Note] = ?) OR ([Note] IS NULL AND ? IS NULL)) AND (([ForzaAss] = ?) OR ([ForzaAss] IS NULL AND ? IS NULL)) AND (([SpecAb] = ?) OR ([SpecAb] IS NULL AND ? IS NULL))" DataFile="fpdb/dbImpiegoCampano.mdb" OldValuesParameterFormatString="original_{0}" ConflictDetection="CompareAllValues" SelectCommand="SELECT [IDReparto], [CIP], [sex], [cin], [Cognome], [Nome], [Note], [ForzaAss], [SpecAb] FROM [Nomi] WHERE ([CIP] = ?)">
<SelectParameters>
<asp:controlparameter ControlID="GridView1" PropertyName="SelectedValue" Name="CIP" Type="Int32" />
</SelectParameters>
<DeleteParameters>
<asp:parameter Name="original_CIP" Type="Int32" />
<asp:parameter Name="original_IDReparto" Type="Int32" />
<asp:parameter Name="original_sex" Type="String" />
<asp:parameter Name="original_cin" Type="String" />
<asp:parameter Name="original_Cognome" Type="String" />
<asp:parameter Name="original_Nome" Type="String" />
<asp:parameter Name="original_Note" Type="String" />
<asp:parameter Name="original_ForzaAss" Type="Boolean" />
<asp:parameter Name="original_SpecAb" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:parameter Name="IDReparto" Type="Int32" />
<asp:parameter Name="sex" Type="String" />
<asp:parameter Name="cin" Type="String" />
<asp:parameter Name="Cognome" Type="String" />
<asp:parameter Name="Nome" Type="String" />
<asp:parameter Name="Note" Type="String" />
<asp:parameter Name="ForzaAss" Type="Boolean" />
<asp:parameter Name="SpecAb" Type="Int32" />
<asp:parameter Name="original_CIP" Type="Int32" />
<asp:parameter Name="original_IDReparto" Type="Int32" />
<asp:parameter Name="original_sex" Type="String" />
<asp:parameter Name="original_cin" Type="String" />
<asp:parameter Name="original_Cognome" Type="String" />
<asp:parameter Name="original_Nome" Type="String" />
<asp:parameter Name="original_Note" Type="String" />
<asp:parameter Name="original_ForzaAss" Type="Boolean" />
<asp:parameter Name="original_SpecAb" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:parameter Name="IDReparto" Type="Int32" />
<asp:parameter Name="sex" Type="String" />
<asp:parameter Name="cin" Type="String" />
<asp:parameter Name="Cognome" Type="String" />
<asp:parameter Name="Nome" Type="String" />
<asp:parameter Name="Note" Type="String" />
<asp:parameter Name="ForzaAss" Type="Boolean" />
<asp:parameter Name="SpecAb" Type="Int32" />
</InsertParameters>
</asp:AccessDataSource>
</td>
</tr>
</table>
<asp:AccessDataSource runat="server" ID="AccessDataSource1" DataFile="fpdb/dbImpiegoCampano.mdb" SelectCommand="SELECT [IDReparto], [CIP], [cin], [Cognome], [Nome] FROM [Nomi] WHERE ([IDReparto] = ?)">
<SelectParameters>
<asp:parameter DefaultValue="10040" Name="IDReparto" Type="Int32" />
</SelectParameters>
</asp:AccessDataSource>
</form>

</body>

</html>

Ti ringrazio in anticipo
ti consiglio come prima cosa di modificare le query, per iniziare e per identificare meglio il problema meglio togliere i vari OR ed AND e limitarti solo a passare i dati da aggiornare e non anche quelli vecchi

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
5 messaggi dal 05 febbraio 2010
Ho l'impressione che sia qualcosa di più generale, magari a livello di configurazione, questo perchè ho provato a generare e gestire una tabella semplicissima e mi riporta sempre lo stesso errore e con qualsiasi controllo asp.net di modifica, cancellazione o inserimento, la visualizzazione va sempre bene.
Saluti
12 messaggi dal 10 maggio 2005
anche io ho lo stesso tuo identico problema, posto qua il codice, la tabella è più semplice:
<form id="form1" runat="server">
    <div>
    
        <asp:GridView ID="GridView1" runat="server" AllowSorting="True" 
            AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:CommandField ShowEditButton="True" />
                <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" 
                    ReadOnly="True" SortExpression="id" />
                <asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" />
                <asp:BoundField DataField="Cognome" HeaderText="Cognome" 
                    SortExpression="Cognome" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConflictDetection="CompareAllValues" 
            ConnectionString="<%$ ConnectionStrings:Test %>" 
            DeleteCommand="DELETE FROM [Clienti] WHERE [id] = ? AND (([Nome] = ?) OR ([Nome] IS NULL AND ? IS NULL)) AND (([Cognome] = ?) OR ([Cognome] IS NULL AND ? IS NULL))" 
            InsertCommand="INSERT INTO [Clienti] ([id], [Nome], [Cognome]) VALUES (?, ?, ?)" 
            OldValuesParameterFormatString="original_{0}" 
            ProviderName="<%$ ConnectionStrings:Test.ProviderName %>" 
            SelectCommand="SELECT * FROM [Clienti]" 
            UpdateCommand="UPDATE [Clienti] SET [Nome] = ?, [Cognome] = ? WHERE [id] = ? AND (([Nome] = ?) OR ([Nome] IS NULL AND ? IS NULL)) AND (([Cognome] = ?) OR ([Cognome] IS NULL AND ? IS NULL))">
            <DeleteParameters>
                <asp:Parameter Name="original_id" Type="Int32" />
                <asp:Parameter Name="original_Nome" Type="String" />
                <asp:Parameter Name="original_Cognome" Type="String" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Nome" Type="String" />
                <asp:Parameter Name="Cognome" Type="String" />
                <asp:Parameter Name="original_id" Type="Int32" />
                <asp:Parameter Name="original_Nome" Type="String" />
                <asp:Parameter Name="original_Cognome" Type="String" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="id" Type="Int32" />
                <asp:Parameter Name="Nome" Type="String" />
                <asp:Parameter Name="Cognome" Type="String" />
            </InsertParameters>
        </asp:SqlDataSource>
    
    </div>
    </form>

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.