23 messaggi dal 07 agosto 2007
Non ho ben capito cosa devo fare
comunque funziona tutto, riesco ad effettuare tutte le operazioni possibili, tranne che per i campi chiave. il problema sta nell'accessdatasource?
sto per diventà scemo
13 messaggi dal 24 marzo 2006
Ciao, se non ho capito male riesci ad editare i campi nella pagina ma non riesci a far funzionare l'update.
Purtroppo mi sembra che l'AccessDataSource non ti permetta di utilizzare i nomi dei parametri nell'update (al contrario dell'SqlDataSource) per cui OldValuesParameterFormatString non è utile.

Prova a inserire manualmente i parametri nella collezione UpdateParameters e quindi nell'evento GridView.OnRowUpdating valorizzare i parametri tramite e.OldValues e e.NewValues.

es. se l'update è come la seguente
UPDATE Table1
SET Key1=?, Key2=?, Key3=?, Value1=?, Value2=?
WHERE Key1=? AND Key2=? AND Key3 = ?
i parametri dovranno essere i seguenti in ordine:
<UpdateParameters>
<asp:Parameter Name="Key1" Type="Int32" />
<asp:Parameter Name="Key2" Type="String" />
<asp:Parameter Name="Key3" Type="String" />
<asp:Parameter Name="Value1" Type="String" />
<asp:Parameter Name="Value12 Type="String" />
<asp:Parameter Name="originalKey1" Type="Int32" />
<asp:Parameter Name="originalKey2" Type="String" />
<asp:Parameter Name="originalKey3" Type="String" />
</UpdateParameters>

Come soluzione è sicuramente un po' complessa e non immediata, ma non mi viene in mente un altro metodo.
Ciao
23 messaggi dal 07 agosto 2007
questo è quello che ho scritto. per i campi non chiave dopo l'operazione di modifica, vengono visualizzati i nuovi valori, per gli altri, quelli originali

<asp:GridView ID="GridView1" runat="server" OnRowUpdating="row_up" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" DataSourceID="AccessDataSource1" DataKeyNames="COM_ID,ELET_ID,ID_CIRC">
<Columns>
<asp:BoundField DataField="COM_ID" HeaderText="COM_ID" SortExpression="COM_ID" />
<asp:BoundField DataField="ELET_ID" HeaderText="ELET_ID" SortExpression="ELET_ID" />
<asp:BoundField DataField="ID_CIRC" HeaderText="ID_CIRC" SortExpression="ID_CIRC" />
<asp:BoundField DataField="PARI_DISP" HeaderText="PARI_DISP" SortExpression="PARI_DISP" />
<asp:BoundField DataField="IND_NUM" HeaderText="IND_NUM" SortExpression="IND_NUM" />
<asp:BoundField DataField="IND_SUF" HeaderText="IND_SUF" SortExpression="IND_SUF" />
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowSelectButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>

</div>
<asp:AccessDataSource ConflictDetection="CompareAllValues" OldValuesParameterFormatString="original_{0}" ID="AccessDataSource1" runat="server" DataFile="~/prova.mdb"
DeleteCommand="DELETE FROM [VIE_CIRCOSCRIZIONI] WHERE [COM_ID] = ? AND [ELET_ID] = ? AND [ID_CIRC] = ?"
InsertCommand="INSERT INTO [VIE_CIRCOSCRIZIONI] ([COM_ID], [ELET_ID], [ID_CIRC], [PARI_DISP], [IND_NUM], [IND_SUF]) VALUES (?, ?, ?, ?, ?, ?)"
SelectCommand="SELECT [COM_ID], [ELET_ID], [ID_CIRC], [PARI_DISP], [IND_NUM], [IND_SUF] FROM [VIE_CIRCOSCRIZIONI]"
UpdateCommand="UPDATE [VIE_CIRCOSCRIZIONI] SET [COM_ID] = ?, [ELET_ID] = ?, [ID_CIRC] = ?, [PARI_DISP] = ?, [IND_NUM] = ?, [IND_SUF] = ? WHERE [COM_ID] = ? AND [ELET_ID] = ? AND [ID_CIRC] = ?">
<DeleteParameters>
<asp:Parameter Name="original_COM_ID" Type="Double" />
<asp:Parameter Name="original_ELET_ID" Type="Double" />
<asp:Parameter Name="original_ID_CIRC" Type="Double" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="COM_ID" Type="Double" />
<asp:Parameter Name="ELET_ID" Type="Double" />
<asp:Parameter Name="ID_CIRC" Type="Double" />
<asp:Parameter Name="PARI_DISP" Type="String" />
<asp:Parameter Name="IND_NUM" Type="Double" />
<asp:Parameter Name="IND_SUF" Type="String" />
<asp:Parameter Name="original_COM_ID" Type="Double" />
<asp:Parameter Name="original_ELET_ID" Type="Double" />
<asp:Parameter Name="original_ID_CIRC" Type="Double" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="COM_ID" Type="Double" />
<asp:Parameter Name="ELET_ID" Type="Double" />
<asp:Parameter Name="ID_CIRC" Type="Double" />
<asp:Parameter Name="PARI_DISP" Type="String" />
<asp:Parameter Name="IND_NUM" Type="Double" />
<asp:Parameter Name="IND_SUF" Type="String" />
</InsertParameters>
</asp:AccessDataSource>
23 messaggi dal 07 agosto 2007
finalmente ho risolto!! In quella porzione di codice che ti ho mandato ho tolto DataKeyNames="COM_ID,ELET_ID,ID_CIRC".
grazie, mi hai indirizzato sulla strada giusta

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.