Guarda ho preparato un esempio apposito che ti mostra come valorizzare il parametro dell'AccessDataSource. Scarica il progetto da qui:
https://1drv.ms/u/s!Ao4rhSdtDw8rge9BwsyvbdDfNpr0KwLato markup trovi una GridView che visualizza le rige e, in cima, una casella di testo in cui inserire un valore. L'aggiornamento viene scatenato cliccando un bottone posto nei pressi della casella di testo.
<form runat="server">
Aumenta tutti i prezzi del <asp:TextBox ID="Textbox1" MaxLength="3" runat="server"></asp:TextBox>%<br />
<asp:Button ID="ModificaPrezzi" Text="Conferma" OnClick="ModificaPrezzi_Click" runat="server" />
<br /><br />
<asp:AccessDataSource ID="AccessDataSource1" DataFile="~/App_Data/Database1.accdb"
SelectCommand="SELECT * FROM Tabella1"
UpdateCommand="UPDATE Tabella1 SET Prezzo = Prezzo * (1 + @Variazione)"
OnUpdating="AccessDataSource1_Updating"
runat="server">
<UpdateParameters>
<asp:Parameter Name="Variazione" DbType="Double" />
</UpdateParameters>
</asp:AccessDataSource>
<asp:GridView id="griglia" AutoGenerateColumns="false" DataSourceID="AccessDataSource1" runat="server">
<Columns>
<asp:BoundField HeaderText="Nome prodotto" DataField="Nome" />
<asp:BoundField HeaderText="Prezzo" DataField="Prezzo" DataFormatString="{0:C}" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
<asp:Label ID="Label1" runat="server" />
</form>
Lato codefile, il gestore del click del bottone scatena l'update sull'AccessDataSource.
Nel gestore dell'evento Updating dell'AccessDataSource, viene valorizzato il parametro che verrà usato nella query UPDATE.
Protected Sub ModificaPrezzi_Click(sender As Object, e As EventArgs)
'Prima di scatenare l'update, verifico se il valore inserito nella casella è numerico
If IsNumeric(Textbox1.Text) Then
AccessDataSource1.Update()
End If
End Sub
Protected Sub AccessDataSource1_Updating(sender As Object, e As SqlDataSourceCommandEventArgs)
'Subito prima che l'UPDATE venga eseguito, recupero il valore dalla casella
Dim variazione As Double = Convert.ToDouble(Textbox1.Text) / 100.0
'E lo assegno al parametro
e.Command.Parameters("Variazione").Value = variazione
'Infine stampo un messaggio di cortesia e svuoto la casella
Label1.Text = "I prezzi sono stati " + IIf(variazione >= 0, "aumentati", "diminuti") + " del " + Math.Abs(variazione).ToString("P")
Textbox1.Text = ""
End Sub
Come si evince dal codice, questo esempio serve ad aumentare o diminuire massivamente i prezzi di una certa percentuale. Dovrai adattare la query UPDATE in base alle tue esigenze.
ciao,
Moreno
Modificato da BrightSoul il 02 agosto 2018 20.21 -